发布网友 发布时间:2022-04-24 22:47
共2个回答
热心网友 时间:2023-10-13 22:20
以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI
<# :
cls
@echo off
rem 监控新增/改动的指定扩展名文件并记录到文件里
mode con lines=3000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%~f0'"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$self=get-item -liter $args[0];
$path=$self.Directory.FullName;
$txtfile=".\历史记录.txt";
$ext=@(".jch", ".jc1");
$sleep=2;
$txtfile=$txtfile -replace '^\.',$path;
$dic=New-Object 'System.Collections.Generic.Dictionary[string,string]';
$enc=[Text.Encoding]::UTF8;
if(test-path -liter $txtfile){
$text=[IO.File]::ReadAllLines($txtfile, $enc);
for($i=0;$i -lt $text.count;$i++){
if(-not $dic.ContainsKey($text[$i])){$dic.add($text[$i],'');};
};
};
while(1){
$files=@(dir -liter $path -recurse|?{($ext -contains $_.Extension) -and ($_ -is [System.IO.FileInfo])});
if($files.length -ge 1){
$fs=New-Object System.IO.FileStream($txtfile, [System.IO.FileMode]::Append);
$sw=New-Object System.IO.StreamWriter($fs, $enc);
for($i=0;$i -lt $files.length;$i++){
$wt=$files[$i].LastWriteTime.toString('yyyy-MM-dd HH:mm:ss')
$line=$wt+'|'+$files[$i].FullName.toLower();
if(-not $dic.ContainsKey($line)){
write-host $line;$dic.add($line,'');
$sw.WriteLine($line);
$sw.Flush();
};
};
$sw.Close();
$fs.Close();
$sw.Dispose();
$fs.Dispose();
};
start-sleep -seconds $sleep;
}
热心网友 时间:2023-10-13 22:21
其实您只需把输出的那个>改成>>
即可实现追加内容到文本中,而不是覆盖文本。