天天看點

xcopy複制指定類型的檔案并保留原始的目錄結構

參考:https://bbs.csdn.net/topics/392023993,9樓

我使用的是powershell執行此指令的,如下:

xcopy *.dat d:\mybackup /S

把目前目錄及其子目錄下的所有擴充名為 dat 的檔案拷貝到 d:/mybackup 目錄中,并保持它們原有的目錄結構。

比如我目前的目錄中有檔案:

1.dat

2018\01.dat

2018\01.xls

2018\02.dat

2017\4\1.dat

2017\3\

在目前目錄執行 xcopy *.dat d:\mybackup /S 之後,d:\mybackup 下的内容為:

1.dat

2018\01.dat

2018\02.dat

2017\4\1.dat

這個目錄中隻有 dat 檔案,而且原始的一個視窗目錄 2017\3 也是不存在的,即空目錄不會被拷貝過來

xcopy的相關參數:

/E : 同 /S 相比,則會把空目錄也拷貝過來,如果使用 xcopy *.dat d:\mybackup /E,則 d:\mybackup 目錄下的内容為:

1.dat

2018\01.dat

2018\02.dat

2017\4\1.dat

2017\3\

最後一行紅色的部分就是拷貝過來的空目錄

需要注意的是,目标路徑,應該采用“\”分隔符而不是“/”,否則指定的目錄名無效,比如我測試的時候使用 

xcopy *.dat ../mybackup /E,結果所有的檔案都以目前目錄的上級目錄為基礎了,即相當于

xcopy *.dat .. /E

根據在拷貝過程中的觀察,所謂不拷貝空目錄,其實還是會先建立這個目錄,如果發現這個目錄中沒有要拷貝的檔案時,它會被删除掉,當然由于速度很快,我隻觀察到第一級目錄,而其中的子目錄則沒有看到,不過我想應該也是會建立然後再删除這樣的政策