我正在尝试使用forfiles删除7天前的文件,这些文件位于UNC路径中。以下是我正在使用的脚本:
Forfiles -p \\devexpress\C$\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path"
但我收到一个错误,提到不支持 UNC 路径(\\machine\share
)。
似乎有可用的解决方法,但是无法在谷歌上得到清晰的答案。
我正在尝试使用forfiles删除7天前的文件,这些文件位于UNC路径中。以下是我正在使用的脚本:
Forfiles -p \\devexpress\C$\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path"
但我收到一个错误,提到不支持 UNC 路径(\\machine\share
)。
似乎有可用的解决方法,但是无法在谷歌上得到清晰的答案。
PA的第一个答案的增强解决方案是:
PushD "\\devexpress\C$\FULL\" &&(
forfiles -s -m *.* -d -7 -c "cmd /c del /q @path"
) & PopD
当我尝试重现问题时,收到的错误提示显示问题不是由于FORFILES不支持UNC路径,而是CMD无法将UNC路径作为默认目录启动。如果这也是你的问题,那么有三种方法可以解决它。
你可以通过NET USE
将UNC路径分配给磁盘号。
NET USE V: \\devexpress\C$
Forfiles -p V:\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path"
您可以绕过CMD
,直接在 FORFILES
的 -C 选项中使用一些 ERASEFILE 可执行实用程序。
您可以绕过FORFILES
,而是使用带有某些日期检查逻辑的 FOR
命令。请参阅我在此 Stack overflow 问题的答案:如何在 Windows 批处理脚本中检查文件的时间戳创建?
PushD "\\DS\Tajana\Arhiva\Arhive po danima" &&("forfiles.exe" /s /m "*.*" /d -7 /c "cmd /c del @path") & PopD
popd
命令会在之后取消映射驱动器。 - Bron Davies