2013-03-25 35 views
4

有沒有一種方法可以利用Robocopy,如果它被稱爲空頂層目錄,它不會複製它?如何防止Robocopy應對空頂層目錄?

我使用Robocopy來識別文件和目錄,然後將其壓縮到腳本中 - 無法使用標準Windows歸檔功能將空目錄壓縮。

我知道/ s開關,它防止空子目錄被複制。

+2

「頂級目錄」是什麼意思?你能給個例子嗎? – Endoro 2013-03-25 12:11:34

回答

4

如果您使用robocopy /s命令而沒有/e開關,則它不會複製任何空文件夾。看起來您正在使用robocopy /s /e,因爲您在清空頂級文件夾時遇到問題。如果您不想要任何空的子文件夾,則只需省略/e開關,並且不會在目標中創建空文件夾。如果您需要複製空的子文件夾,則無法避免複製空白的頂級文件夾。然而,你可以很容易地取出空最高級別文件夾是這樣的:

robocopy C:\Source\Dir X:\Dest\Dir /s /e 
cd /d X:\Dest\Dir 
for /d %%i in (*.*) do rd "%%i" > nul 2>&1 

cd命令更改目標驅動器&文件夾,然後for命令嘗試刪除所有頂級文件夾。只有那些空的將被刪除。 > nul 2>&1隱藏輸出和錯誤,因爲非空的文件夾將顯示錯誤消息,可以忽略它。

1

Robocopy/S只會執行這個技巧,我注意到,如果在目標文件夾完成之前查看目標文件夾,當您運行命令時,您可能會看到一些空文件夾,但是一旦該過程完成,它們將會消失。