在批处理文件中指定文件夹

时间:2014-07-28 08:29:04

标签: batch-file

我发现了一个示例批处理文件,我试图用它来删除5天后的文件。我一直在使用“echo”命令测试它,它的工作原理。我唯一的问题是我希望它删除文件夹内的每个文件,但不删除文件夹。

forfiles -p "E:\Programs\SickBeard\SickBeard\lib" -s -m *.* -d -5 -c "cmd /c echo @file"

我已经尝试将路径更改为“... \ lib \”,我尝试将@file更改为@path但这些似乎都不起作用。

如何指定要删除的文件夹中的所有文件,而不是文件夹本身?我将使用任务调度程序每天运行一次此文件。提前谢谢。

编辑:哦,为了记录,这只是一个测试文件夹。此外,这将在Windows 8.1上运行吗?我目前正在使用Windows 7,它似乎工作正常,但我将在新的Windows 8.1版本中使用它。

2 个答案:

答案 0 :(得分:0)

默认情况下,forfiles命令仅处理文件,而不处理文件夹。所以你的命令绝对正常(应该也在Win8上......)。

如果您想使用forfiles命令删除文件夹,下面就是一个这样的例子。

forfiles -p "C:\Sample" -d -5 -c "cmd /c IF @isdir == TRUE rd /S /Q @path"

干杯,G

答案 1 :(得分:0)

你走了。删除你想要的那些文件,避免讨厌的找不到文件"错误"和相应的errorlevel为1 - 同时保留FORFILES命令中的其他更有价值的错误:

cmd /e:on /c "forfiles /p "<insert your directory here>" /s /m *.* /d -5 /c "cmd /c del @path" 2>&1 |  findstr /V /O /C:"ERROR: No files found with the specified search criteria."2>&1 | findstr ERROR&&EXIT 1||EXIT 0"&EXIT %errorlevel%