我正在尝试使用任务计划程序每晚删除所有文件夹和文件。我在操作中使用以下命令:
程序/脚本:forfiles
参数:/S /P C:\Users\david\AppData\Roaming\Apple Computer\MobileSync\Backup /C "cmd /c if @isdir==TRUE rd /s /q @file"
这不会删除任何文件或文件夹。这个例子中我遗漏了什么?
这似乎有效但确实会引发错误: /S /P "C:\Users\Sales\AppData\Roaming\Apple Computer\MobileSync\Backup" /C "cmd /c rd /s /q @file
错误:
C:\Users\david>forfiles /S /P "C:\Users\david\AppData\Roaming\Apple Computer\MobileSync\Backup" /C "cmd /c rd /s /q @file
ERROR: The system cannot find the file specified.
C:\Users\david>
答案1
当您计划使用“rd /s /q”破坏所有内容时,为什么要搜索子目录?
你可能(可能)看到的是这个:
- 福尔菲斯建立一个要使用的文件列表:说......“C:\这个“ 和 ”C:\这个\那个“
- 你得到 ”C:\这个“交给你
- 您删除了“C:\这个“递归地
- 你得到 ”C:\这个\那个“交给你。
- 由于它不存在,因此删除时会出错。
还有一种情况也可能发生!枚举树时可能会有一个文件句柄处于打开状态,因此当您尝试删除“C:\这个“,”C:\这个\那个“仍然被 forfiles 锁定。我不知道 forfiles 是否是为了规避这种情况而编写的,但我有一定在编程时遇到这个问题。
建议:删除 /S福尔菲斯(最佳)或添加“blah blah blah..如果存在@file“等等等等(不是最好的)。