如何创建DEL命令无法正确执行的报告文件?
我原以为你会这样做:
DEL FILENAME.TXT ECHO "FILENAME.TXT" >> REPORT.TXT
但它所做的只是制作一个空的报告文件,无论它是否找到FILENAME.TXT。我想要创建一个报告文件,如果它因为弹出的消息被转储到REPORT.TXT中的原因而无法删除FILENAME.TXT。
有什么想法吗?
答案 0 :(得分:1)
仅供参考。如果发生严重错误,DEL命令会返回错误代码,但是它的行为超出了我们的直觉,人们只会认为错误代码根本不起作用。
这是我在Windows 7中的DEL命令中测试过的:
并且,如果您指定DEL命令的文件列表,其中至少有一个文件符合上面提到的最后两种错误,那么列表中的所有文件都不会被删除< / em>的
答案 1 :(得分:0)
Del命令总是返回错误代码0,即使找不到文件或文件需要管理员访问权限,因此您需要在尝试删除文件后检查文件是否仍然存在:
@Echo OFF
Set "File=File.txt"
Del "%File%" 2>NUL & If exist "%File%" (
Echo [+] File failed to delete: "%File%" >> "Report.txt"
)
Pause&Exit
对于大量文件,您可以创建一个不写大代码的过程,如下所示:
@Echo OFF
Call :ReportDelete "C:\File1.txt"
Call :ReportDelete "C:\File2.txt"
Call :ReportDelete "C:\File3.txt"
Call :ReportDelete "C:\File4.txt"
Call :ReportDelete "C:\File5.txt"
Pause&Exit
:ReportDelete
(Del "%~1" 2>NUL & If exist "%~1" (Echo [+] File failed to delete: "%~1" >> "Report.txt")) & (Goto:EOF)