如何删除名为“0 Files Copied”的txt及其下方的行(带有日期和时间)
基本上它会删除日志文件中的垃圾。
有编辑:
findstr /v /i /c:"0 File(s)" Backuper_log.txt > Backuper_log2.txt
type Backuper_log2.txt > Backuper_log.txt
del Backuper_log2.txt
exit
答案 0 :(得分:1)
您可以将FIND命令与/ V参数一起使用,例如
find /V "0 Files Copied" log.txt > log2.txt
但这只会删除“0 Files Copied”的行;此命令不允许您删除后面的行。
您还可以使用FINDSTR,它允许搜索regualr表达式。
findstr /V /R /C:"^0 Files Copied$" log.txt > log2.txt
您还可以使用findstr使用适当的正则表达式独立删除包含日期的行。
有a way使用findstr搜索多行,但是这种方法不适用于/ V选项,因为只过滤了匹配的第一行。所以你不能使用findstr删除匹配的行和下一行。
如果您确实需要专门做,我认为您最好的选择是使用alternative of grep for Windows。
您还可以使用以下简单脚本来使用Powershell。只需将其复制并粘贴到powershell命令行中,然后按两次Enter键即可开始执行。确保输入文件位于当前文件夹中。
$Lines = Get-Content "input.log"
for ($num = 0; $num -lt $lines.Count; $num++ ) {
if ($Lines[$num] -match "0 Files Copied") {
$num++; #skip next line
continue
}
if ($num -match 0) {
$Lines[$num] > "output.log" }
else {
$Lines[$num] >> "output.log" }
}