我正在运行一个窗口脚本来删除文件夹中有大约10k文件的文件。我希望我的脚本命令是:
forfiles /p "path" /s /d -30 /c "cmd /c del @file : date >= 30 days >NUL"
,应该删除10个文件,然后等待5秒然后再次开始删除,然后再等待5 secons
依此类推?
我想要这个功能,因为如果一次删除10k文件,它会妨碍服务器的正常工作
答案 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
行上变量的值字符串,确保不删除结束双引号或包含任何双引号用你的新字符串。