因此,我试图让我的批处理脚本在成功完成其作业并在此处激活错误代码为0的情况下从列表中删除资产标记代码块。如何使用findstr删除.txt文件中的单行批次
FOR /F %%G IN (PingResults2.txt) DO (
@psexec -s -w C:\ \\%%G -c -f "USMTCAPTURE.cmd"
IF !errorlevel! equ 0 (
echo %%G >> usmtdone.txt
findstr /V %%G ToPingList2.txt > ToPingList2.txt
)
)
据我可以告诉我的代码部分工作正常,但是当它到达此行中我的循环是刚刚消灭整个文件。
findstr /V %%G ToPingList2.txt > ToPingList2.txt
我测试,对我来说这看起来像它应该工作。 findstr /V %%G ToPingList2.txt
由它自己调用文件中所有其他行的文本,当我测试findstr /V %%G ToPingList2.txt >> ToPingList2.txt
时,它第二次在文件中添加了所有其他行。那么为什么findstr /V %%G ToPingList2.txt > ToPingList2.txt
擦干净整个文件?
可能是因为您正在尝试打开“ToPingList2.txt”,以便在已经打开阅读时进行书写。尝试输出到不同的文件,然后在'findstr'完成后移动/ y newfile ToPingList2.txt> NUL'。 – rojo