2017-05-11 29 views
0

我嘗試以遞歸方式遍歷文件夾並將某個文件的某個級別向上移動。如PDF & DOC。 文件夾的結構是: 文件夾1 - >文件夾2->文件夾3 - >文件夾(doc) - > * .doc,文件夾(mp3) - > * .mp3。瀏覽目錄結構並將文件的某些擴展名向上移動一個級別

我需要像這樣更改: 文件夾1 - >文件夾2->文件夾3 - >文件夾(doc),* .doc,文件夾(mp3),* .mp3。

所以我有很多這樣的文件夾。而且手動做這件事是不可能的。

我試過化妝腳本: 1.0

For /R %%G in (*.doc,*.mp3) do move %%G ../ 

V1.1

For /R %%G in (*.doc,*.mp3) do move %%~nxG ../ 

V1.2

For /R %%G in (*.doc,*.mp3) do (
set B=%%~nxG 
move %%B ../ 

但它不工作。 我做錯了什麼?

如果我這樣做手動:

CD夾1
CD文件夾2
CD文件夾3
CD文件夾(DOC)
MOVE的* .doc ../

它的作品!

我將不勝感激任何意見!

+2

刪除尾部的'/'。另外引用move命令中的'%% G' var,以便它可以處理目錄和文件名中的空格。(for/R %% G in(* .doc,*。mp3)do move「%% G」..' – elzooilogico

+0

'For/R %% G in(* .doc,*。mp3)do move「%% G」「%%〜PG ..」'請注意,您的'..'引用指定**當前的父級** directory_,而不是每個文件的父項! 'for/R'命令不會改變當前目錄。 – Aacini

+0

非常感謝!這正是需要的! – Yurok

回答

0
For /R %%G in (*.doc,*.mp3) do move "%%G" "%%~PG.." 

請注意,您..參考指定當前目錄的父母,每個文件的不是父! for /R命令確實不是更改當前目錄。

相關問題