批处理文件,用于删除文件,还可以创建已删除文件的日志

时间:2016-02-29 07:40:57

标签: batch-file

我有以下代码用于从特定日期删除驱动器中的文件和文件夹.....这段代码工作正常。 现在我要修改这段代码......

我想要删除所有已删除的已删除文件..... 请帮我做这个

@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

"

2 个答案:

答案 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 >>,以便它修正了文件而不是只输出一行(仅记录一个错误)