我有以下代码用于从特定日期删除驱动器中的文件和文件夹.....这段代码工作正常。 现在我要修改这段代码......
我想要删除所有已删除的已删除文件..... 请帮我做这个
@echo off
:: set folder path
set dump_path=E:\
:: set min age of files and folders to delete
set max_days=0
:: remove files from %dump_path%
forfiles -p %dump_path% -m *.* -d -%max_days% -c "cmd /c del /q @path"
:: remove sub directories from %dump_path%
forfiles -p %dump_path% -d -%max_days% -c "cmd /c IF @isdir == TRUE rd /S /Q @path
"
答案 0 :(得分:3)
你可以延长执行的cmd
,例如。像这样:
"cmd /c del /q @path && echo @path>>logfile.log"
奖励:如果del
成功,这实际上只会记录文件名。
"cmd /c del /q @path && echo @path>>logfile.log || echo @path>>logfile.err"
将另外记录任何失败的删除。
答案 1 :(得分:0)
我使用了上面提供的奖励代码"cmd /c del /q @path && echo @path>>logfile.log || echo @path>>logfile.err"
,但发现无论成功与否,它都将所有输出写入了两个位置。我还必须更改||。到|为它工作。
我确实发现使用此代码2>>c:\users\xxxxxxxx\Desktop\LogFile.err
只写了失败的尝试,因为这通过使用2>用管道输送了STDERR而不是STDOUT,所以我使用了2 >>,以便它修正了文件而不是只输出一行(仅记录一个错误)