使用 ForFiles 通过任务计划程序删除文件

使用 ForFiles 通过任务计划程序删除文件

我正在尝试使用任务计划程序每晚删除所有文件夹和文件。我在操作中使用以下命令:

程序/脚本: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”破坏所有内容时,为什么要搜索子目录?

可能(可能)看到的是这个:

  1. 福尔菲斯建立一个要使用的文件列表:说......“C:\这个“ 和 ”C:\这个\那个
  2. 你得到 ”C:\这个“交给你
  3. 您删除了“C:\这个“递归地
  4. 你得到 ”C:\这个\那个“交给你。
  5. 由于它不存在,因此删除时会出错。

还有一种情况也可能发生!枚举树时可能会有一个文件句柄处于打开状态,因此当您尝试删除“C:\这个“,”C:\这个\那个“仍然被 forfiles 锁定。我不知道 forfiles 是否是为了规避这种情况而编写的,但我有一定在编程时遇到这个问题。

建议:删除 /S福尔菲斯(最佳)或添加“blah blah blah..如果存在@file“等等等等(不是最好的)。

相关内容