2015-09-26 22 views
-2

多個根目錄,目錄層次我有這樣的結構:拉平爲使用Windows的命令行

Folder Root 
    Folder A 
     Folder 1 
      file1.jpg 
      file2.jpg 
     Folder 2 
      file3.jpg 
    Folder B  
     Folder 1 
     file4.jpg 
    Folder C 
     Folder 1 
      file5.jpg 
      file6.jpg 
      file7.jpg 
      file8.jpg 
     Folder 2 
      file9.jpg 
      file10.jpg 

現在我想在A的子文件夾中的所有文件將在A,B在B等。
有了這個代碼:

for /r %f in (*) do move "%f" 

我不得不進入每個文件夾(A,B,C)手動,這不是一種選擇,我有衆多需要此操作目錄。

有沒有辦法從Folder Root運行命令並遞歸滾動到A,B和C並將文件從它們各自的子文件夾中移出?

+0

「文件夾1」和「文件夾2」的'file1.jpg'不能共存於同一個文件夾中。 – foxidrive

回答

1

編輯:

測試您的文件夾的副本。

@echo off 
for /d %%a in (*) do for /f "delims=" %%b in ('dir "%%a\*.jpg" /b /s /a-d') do move "%%b" "%%a" 
+0

沒有工作。我從.bat文件中刪除了@echo off行以查看輸出結果: – thx0125

+0

for(「Folder1 \ *」)中的/ r%b移動了「%b」「Folder 1」 for/r%b在(「Folder2 \ *」)中移動「%b」「文件夾2」 – thx0125

+0

您是將它作爲批處理文件運行還是將其粘貼到cmd提示符中? – foxidrive

0

我已經解決了這個問題。嵌套fors只是不會去做。我的解決方案如下。

使用此代碼創建一個文件moveToRoot.bat

for /r %%f in (*) do move "%%f" 

的創建文件moveToRootBase.bat與此代碼

for /D %%d in (*) do (
copy copiaARaiz.bat "%%d" 
cd "%%d" 
copiaARaiz.bat 
del copiaARaiz.bat 
cd..) 

從文件夾的根,做執行moveToRootBase.bat!