Windows批处理 - 删除特定年龄和类型的文件并列出它们

时间:2014-08-10 12:52:49

标签: windows batch-file file-io

我正在寻找一种解决方案,允许用户从特定路径删除超过X天的特定文件类型。
到目前为止,我设法创建了这个批处理文件:

@echo off

set /p FileAge= Delete files older than this many days: 
set /p FileType= File type to delete. Seperate with comma. (mov, mxf...): 
set /p FilePath= Full path of files location: 

for %%G in (%FileType%,) do forfiles -p "%FilePath%" -s -m *%%G -d -%FileAge% -c "cmd /c echo @path"

Choice /M "These files will be deleted. Do you want to continue?"
If Errorlevel 1 Goto Yes
If Errorlevel 2 Goto No

:Yes
for %%G in (%FileType%,) do forfiles -p "%FilePath%" -s -m *%%G -d -%FileAge% -c "cmd /c del @path"

:No
exit

PAUSE

缺少一些内容:

  • 第9行 - 选择/ M"这些文件将被删除。你想要_____吗 继续?" 计算文件数量的最佳方法是什么? 会被删除吗?
  • 我希望批处理将已删除文件的列表输出到日志文件中。像log_01312014.txt
  • 之类的东西

1 个答案:

答案 0 :(得分:0)

Hello O_ren to Stack Overflow。

假设您使用的是Windows 7或更高版本,我们将使用名为"Files"的文件夹在"To_Delete"文件夹+名称为"Log_%date%.txt"

的日志文件中传输所需的文件类型

之后,您只需使用del命令将文件删除或保存在"To_Delete"文件夹中。

在下面的示例中,这个衬管解决方案会将超过7天的ini文件移动到我们的文件夹"To_Delete"并记录移动的文件。

  robocopy "C:\Files" "c:\Files\To_Remove" /mov *.ini /minage:7 >C:\Files\Log_%date:~-4,4%_%date:~-10,2%_%date:~-7,2%.txt