要从折叠中删除文件,请暂停5秒钟

时间:2018-01-19 09:00:49

标签: windows batch-file

我正在运行一个窗口脚本来删除文件夹中有大约10k文件的文件。我希望我的脚本命令是:

forfiles /p "path" /s /d -30 /c "cmd /c del @file : date >= 30 days >NUL"

,应该删除10个文件,然后等待5秒然后再次开始删除,然后再等待5 secons依此类推? 我想要这个功能,因为如果一次删除10k文件,它会妨碍服务器的正常工作

2 个答案:

答案 0 :(得分:0)

实现简单

timeout /T 5

对于较旧的Windows操作系统',(pre-Vista)timeout不可用,您只需使用ping进行等待即可。每个回应请求之间有第二个延迟,因此在5秒钟内我们需要6 ping个计数。因此,通过运行以下它将等待5秒。

ping 127.0.0.1 -n 6 >nul

为了让您知道如何进行删除,您可以执行以下操作:(我使用的是echo,但您可以循环使用del

:start
for /L %%G IN (1,1,10) DO echo "Some command"
timeout /T 5
goto start

答案 1 :(得分:0)

您可以使用ForFiles中的其他命令并运行脚本而不会暂停,或者需要将文件数分成较小的块。

这会使用RoboCopy及其/Move选项:

@Echo Off

Set "_source=C:\Users\Sumit-Anand\Folder"
Set "_daysage=30"

Set "_scratch=%TEMP%\~%random%"
MD "%_scratch%"
RoboCopy "%_source%" "%_scratch%" /E /Move /Create /MinAge:%_daysage%
RD /S/Q "%_scratch%"

您需要更改的是3行和4行上变量的值字符串,确保删除结束双引号或包含任何双引号用你的新字符串。