怎样才能创造一个地方DEL命令未能正确执行报告文件?
我还以为你会怎么做:
DEL FILENAME.TXT ECHO "FILENAME.TXT" >> REPORT.TXT
但它的作用是使一个空的报告文件,无论是否发现FILENAME.TXT与否。 我想创造一个失败,如果有删除FILENAME.TXT不管什么原因,在弹出的消息被倒入REPORT.TXT的报告文件。
有任何想法吗?
怎样才能创造一个地方DEL命令未能正确执行报告文件?
我还以为你会怎么做:
DEL FILENAME.TXT ECHO "FILENAME.TXT" >> REPORT.TXT
但它的作用是使一个空的报告文件,无论是否发现FILENAME.TXT与否。 我想创造一个失败,如果有删除FILENAME.TXT不管什么原因,在弹出的消息被倒入REPORT.TXT的报告文件。
有任何想法吗?
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)
只是为了您的信息。 Del命令,如果不出现严重错误返回错误代码,但它的行为是远远超出我们的直觉,人们会简单地认为该错误代码不会在所有的工作。
这是我在DEL命令在Windows 7测试:
而且,如果你指定的文件列表,以DEL命令,在文件中至少有一个适应后两种错误上面提到的,那么没有在列表中的文件将在所有被删除 。