使用UNC路径的forfiles

19

我正在尝试使用forfiles删除7天前的文件,这些文件位于UNC路径中。以下是我正在使用的脚本:

Forfiles -p \\devexpress\C$\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path" 

但我收到一个错误,提到不支持 UNC 路径(\\machine\share)。

似乎有可用的解决方法,但是无法在谷歌上得到清晰的答案。

3个回答

75

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 中找到。

1
值得注意的是,popd 命令会在之后取消映射驱动器。 - Bron Davies

16

当我尝试重现问题时,收到的错误提示显示问题不是由于FORFILES不支持UNC路径,而是CMD无法将UNC路径作为默认目录启动。如果这也是你的问题,那么有三种方法可以解决它。

  1. 你可以通过NET USE将UNC路径分配给磁盘号。

  2. NET USE V: \\devexpress\C$
    Forfiles -p V:\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path" 
    
  3. 您可以绕过CMD,直接在 FORFILES 的 -C 选项中使用一些 ERASEFILE 可执行实用程序。

  4. 您可以绕过FORFILES,而是使用带有某些日期检查逻辑的 FOR 命令。请参阅我在此 Stack overflow 问题的答案:如何在 Windows 批处理脚本中检查文件的时间戳创建?


0
我已经让这个工作了:
PushD "\\DS\Tajana\Arhiva\Arhive po danima" &&("forfiles.exe" /s /m "*.*" /d -7 /c "cmd /c del @path") & PopD

虽然在命令提示符窗口中收到“不支持 UNC 路径”错误消息,但它仍会删除7天前的文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接