2011-06-30 91 views
5

我有一個目錄,我想使用Robocopy.exe將其複製到另一個目錄。使用Robocopy從根目錄中排除文件擴展名

我的計劃是從源目錄的根目錄中排除一些文件。實際上,我只想從目錄的ROOT中排除.html文件。

訣竅是我目前正在使用/ E當前導致所有子文件夾也被處理。

因此,我當前操作的結果是,如果我使用:

/E /XF "*.html" 

我要排除所有HTML文件的站點範圍。

有沒有辦法讓我可以繼續複製所有的子文件夾,還可以使用XF從根目錄中排除.html文件?

喜歡的東西:

/E /XF "c:\releases\website_source\*.html" 
+0

這是一個尷尬的好東西 - 那麼傳輸文件但是從目的地刪除.html文件呢? –

回答

3

好了,所以沒有真正的理由,我必須找到一個方法來回答這個問題。

我只能找到一個使用PowerShell「體面」的方式,它仍然凌亂。

因此,首先,編輯以下PowerShell來滿足您的需求:

$files = Get-ChildItem c:\releases\website_source -Filter {*.html} 
"/XF" > c:\temp\exclude.rcj 
foreach ($f in $files) {$f.FullName >> c:\temp\exclude.rcj} 

這將創建一個ROBOCOPY「工作」文件/ XF指令後的文件列表。 然後按照正常方式調用您的robocopy命令,但在其末尾添加/job:c:\temp\exclude.rcj。這基本上會使每個根HTML文件的複雜/ XF更簡單地寫入腳本中。

請注意,您可以使用批處理文件來完成上述操作,但是我最好使用powershell然後批處理循環等。

是的我意識到這是一個有點過時的問題,但我需要做點事情。

4

我的解決方案不雅,但很容易理解。 我只是用兩行批處理文件執行任務。 Robocopy根文件夾(但不包括子目錄) - 包括.html文件。 然後下一行Robocopy包括所有的子目錄(不包括* .html)