2011-01-14 23 views
1

我有一個目錄結構如下所示:移動嵌套文件根目錄中的DOS

C:\mydir\foo\a.zip 
C:\mydir\foo\b.zip 
C:\mydir\bar\c.zip 
C:\mydir\baz\d.zip 

我想移動在C中的所有文件:\ MYDIR \ * \ *壓縮到C:\ MYDIR所以輸出結構應爲:

C:\mydir\a.zip 
C:\mydir\b.zip 
C:\mydir\c.zip 
C:\mydir\d.zip 

...與多餘的空文件夾潛在地仍然存在。我如何僅使用DOS命令行來完成此操作?

+0

這裏有兩個扁平化腳本......沒有嘗試過他們自己的,但值得張貼在這裏如果你的作品:http://www.petri.co.il/forums/showthread.php?t= 24778 – harpo 2011-01-14 06:30:35

回答

3

試試這個:

CD /D C:\mydir 
FOR /f "delims=" %a IN ('DIR *.zip /s /b') DO MOVE "%a" . 

它首先改變了目錄C:\mydirDIR僅列出具有文件名的子目錄中的所有zip文件。 FOR確保每行都進入變量%aMOVE基本上將每個找到的文件移動到當前目錄,即C:\mydir