2012-03-05 55 views
0

我有數以萬計的*.wav文件分佈在數百個文件夾中。我需要幫助才能使命令行將所有文件上移一個級別。所有這些文件的目錄結構是相同的,但文件夾的名稱略有不同:將MANY文件夾中的所有文件向上移動一個級別 - 命令行

Z:\音頻\等級* \故事* \翻譯\ * WAV

的所有文件地處VOCAB文件夾,我需要將其移動到文件夾story*

Z:\音頻\等級* \故事* \ * WAV

我可以通過在每個單獨的文件夾上運行移動命令從命令行執行此操作,但有沒有辦法在整個目錄內的所有文件上遞歸運行它?我可以在位置路徑中使用通配符嗎?

備註: *關卡*和故事*是數字01-24。
我在Windows XP Professional上。

感謝您提供任何幫助!

回答

0

在另一個論壇發現了類似的問題(http://www.computerhope.com/forum/index.php/topic,98046.0/all.html)。

修改他們的一些代碼,這裏有一個批處理文件腳本,可能做的伎倆(請在一小部分試圖解開這一切前):

@echo off 
set thisdir=%cd% 
for /f "delims=" %%A in ('dir /b /ad') do (
    cd /d "%%~dpnA" 
    for /f "delims=" %%B in ('dir /b /ad') do (
     echo Level 2 Directory: %%~dpnB 
     cd /d "%%~dpnB" 
     for /f "delims=" %%C in ('dir /b /ad') do (
      echo Level 3 Directory: %%~dpnC 
      cd /d "%%~dpnC" 
      move *.* ..\ 
      cd .. 
      rd "%%~dpnC" 
     ) 
     cd .. 
    ) 
    cd.. 
) 
cd /d "%thisdir% 
+0

謝謝!在回顧您所引用的論壇之前,我對這些代碼進行了一些嘗試。我使用了一小段代碼來創建一個非常小且簡單的批處理文件,其代碼如下:'@echo off for/f %% P in('dir/b/od')會複製%% P \ VOCAB \ *。*。\ %% P \ REM for/f %% P in(dir/b/od')do rmdir/s/q %% P \ VOCAB'並在每個Level * '文件夾。這些文件夾中只有24個,所以這是一個非常簡單的工作,它做到了!再次感謝! – 2012-03-08 17:39:40

1

嘗試類似:

for /r %F in (*.wav) do move %F %~pF\.. 

for /?從命令提示符引用(尤其是在情況下,我沒有「碼」是完全正確......)

我建議從它開始在\Audio目錄內。

+0

我贊成這樣的解決方案因爲它有多簡單!但是,運行此命令會將所有文件放在起始目錄中,而不是將它們移動到一個級別。任何想法如何使用'%〜pF'代碼將文件提升一級?或者那是'\ ..'應該做什麼? (對不起,我不熟悉'\ ..') – 2012-03-08 16:20:16

+0

是在一個目錄中的'..',代表它位於其中的目錄。 – contributor 2012-03-19 19:14:33

相關問題