使用Windows命令行

时间:2015-09-26 04:24:49

标签: windows batch-file cmd

我有这个结构:

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并从各自的子文件夹中移动文件?

2 个答案:

答案 0 :(得分:1)

编辑:

在您的文件夹副本上进行测试。

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

答案 1 :(得分: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..)

从Folder Root执行moveToRootBase.bat并完成!