有沒有一種方法可以利用Robocopy,如果它被稱爲空頂層目錄,它不會複製它?如何防止Robocopy應對空頂層目錄?
我使用Robocopy來識別文件和目錄,然後將其壓縮到腳本中 - 無法使用標準Windows歸檔功能將空目錄壓縮。
我知道/ s開關,它防止空子目錄被複制。
有沒有一種方法可以利用Robocopy,如果它被稱爲空頂層目錄,它不會複製它?如何防止Robocopy應對空頂層目錄?
我使用Robocopy來識別文件和目錄,然後將其壓縮到腳本中 - 無法使用標準Windows歸檔功能將空目錄壓縮。
我知道/ s開關,它防止空子目錄被複制。
如果您使用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
隱藏輸出和錯誤,因爲非空的文件夾將顯示錯誤消息,可以忽略它。
Robocopy/S只會執行這個技巧,我注意到,如果在目標文件夾完成之前查看目標文件夾,當您運行命令時,您可能會看到一些空文件夾,但是一旦該過程完成,它們將會消失。
「頂級目錄」是什麼意思?你能給個例子嗎? – Endoro 2013-03-25 12:11:34