具有UNC路径的forfiles

时间:2011-09-21 16:43:07

标签: batch-file forfiles

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

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

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

似乎有可用的解决方法,但无法通过谷歌搜索得到明确的答案。

3 个答案:

答案 0 :(得分:64)

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 :(得分:13)

我在尝试重现问题时遇到的错误表明问题不在于FORFILES没有支持UNC Path,而是CMD无法以UNC路径作为默认目录启动。如果这也是你的问题,有三种方法可以解决它。

  1. 您可以通过NET USE

    将UNC路径分配给磁盘信件
    NET USE V: \\devexpress\C$
    Forfiles -p V:\FULL\ -s -m *.* -d -7 -c "cmd /c del /q @path" 
    
  2. 您可以绕过CMD并直接在FORFILES

  3. 的-C选项中直接使用一些ERASEFILE可执行实用程序
  4. 您可以绕过FORFILES并使用FOR命令代替日期检查逻辑。请参阅我对此堆栈溢出问题How can I check the time stamp creation of a file in a Windows batch script?

  5. 的回答

答案 2 :(得分:0)

我可以使用它

PushD "\\DS\Tajana\Arhiva\Arhive po danima" &&("forfiles.exe" /s /m "*.*" /d -7 /c "cmd /c del @path") & PopD

尽管我在cmd窗口中收到有关“不支持UNC路径”的错误消息,但仍会删除7天以上的文件