我正在尝试使用 forfiles 删除超过 7 天的文件。这些文件位于 UNC 路径中。下面是我正在使用的脚本。
Forfiles -p \\devexpress\C$\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path"
\\machine\share
但我收到一条错误消息,指出不支持UNC 路径 ( )。
似乎有可用的解决方法,但无法通过谷歌搜索得到明确的答案。
我正在尝试使用 forfiles 删除超过 7 天的文件。这些文件位于 UNC 路径中。下面是我正在使用的脚本。
Forfiles -p \\devexpress\C$\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path"
\\machine\share
但我收到一条错误消息,指出不支持UNC 路径 ( )。
似乎有可用的解决方法,但无法通过谷歌搜索得到明确的答案。
PA的第一个答案的增强解决方案是:
PushD "\\devexpress\C$\FULL\" &&(
forfiles -s -m *.* -d -7 -c "cmd /c del /q @path"
) & PopD
PushD 命令自动将 UNC 路径映射到空闲驱动器号,因此这是一种可移植的方法。在http://www.petri.co.il/forums/showthread.php?t=24241中找到。
我在尝试重现问题时遇到的错误表明问题不在于 FORFILES 不支持 UNC 路径,而是 CMD 无法以 UNC 路径作为默认目录启动。如果这也是您的问题,有三种方法可以解决它。
您可以通过以下方式将 UNC 路径分配给磁盘号NET USE
NET USE V: \\devexpress\C$
Forfiles -p V:\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path"
您可以CMD
直接在 -C 选项中绕过并直接使用某些 ERASEFILE 可执行实用程序FORFILES
您可以绕过FORFILES
并使用FOR
带有一些日期检查逻辑的命令。请参阅我对此堆栈溢出问题的回答如何检查 Windows 批处理脚本中文件的时间戳创建?
我得到了这个工作:
PushD "\\DS\Tajana\Arhiva\Arhive po danima" &&("forfiles.exe" /s /m "*.*" /d -7 /c "cmd /c del @path") & PopD
虽然我在 cmd 窗口中收到有关“不支持 UNC 路径”错误的消息,但它仍然会删除超过 7 天的文件