2011-09-21 395 views
12

我試圖使用forfiles刪除超過7天的文件。這些文件位於UNC路徑中。以下是我正在使用的腳本。forfiles與UNC路徑

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

但是我得到一個錯誤,提到不支持UNC路徑(\ machine \ share)。

似乎有可用的解決方法,但不能得到明確的答案谷歌搜索。

回答

11

嘗試重現問題時出現錯誤,說明問題不在於FORFILES不支持UNC路徑,但是CMD無法以UNC路徑作爲默認目錄啓動。如果這也是你的問題,有三種方法可以解決它。

  1. 您可以分配的UNC路徑磁盤代號,通過NET USE

    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?

54

增強解決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

+0

這實際上工作!謝謝@jirkamat –

+0

我知道你不應該說「謝謝」,但謝謝!的xD – Michael