2015-09-26 90 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!