![手动备份文件任务运行成功但未执行任何操作](https://linux22.com/image/1526973/%E6%89%8B%E5%8A%A8%E5%A4%87%E4%BB%BD%E6%96%87%E4%BB%B6%E4%BB%BB%E5%8A%A1%E8%BF%90%E8%A1%8C%E6%88%90%E5%8A%9F%E4%BD%86%E6%9C%AA%E6%89%A7%E8%A1%8C%E4%BB%BB%E4%BD%95%E6%93%8D%E4%BD%9C.png)
我计划在 Windows Server 2012 上运行此备份 cmd 的任务。它以前在没有 forfiles 的情况下工作,forfiles 应该只保留 6 天的条目的文件夹/文件。
SET date_stamp=%DATE:~10,4%-%DATE:~7,2%-%DATE:~4,2%
forfiles /p E:\Test_Backups\ /D -6 /C "cmd /c del /s /q @PATH"
for /f "usebackq" %d in (`dir /ad/b/s "E:\Test_Backups\"`) do rd "%d"
forfiles /p E:\Test2_Backups\ /D -6 /C "cmd /c del /s /q @PATH"
for /f "usebackq" %d in (`dir /ad/b/s "E:\Test2_Backups\"`) do rd "%d"
mkdir "E:\Test_Backups\%date_stamp%"
mkdir "E:\Test2_Backups\%date_stamp%"
::stop some services
"C:\Program Files\7-Zip\7z.exe" a -m0=COPY "E:\Test_Backups\%date_stamp%\%date_stamp%-TestApp.7z" "D:\Test"
::start some services
现在,它停止工作了。任务调度程序的历史记录显示它已运行,但“E:\Test_Backups\”中没有任何备份。甚至 mkdir 也没有运行。
我可以知道发生什么事了吗?
答案1
我刚刚发现在运行其他代码之前必须关闭这个 for 循环
for /f "usebackq" %d in (`dir /ad/b/s "E:\Test2_Backups\"`) do rd "%d"
网上有一些方法可以找到另一段代码,这被认为是 cmd 中的一种解决方法,但对我来说,最简单的方法是将代码拆分为 2 个计划任务。