用于处理子子目录

时间:2015-06-09 18:54:23

标签: batch-file

给定文件夹结构

Folder0
    batfile.bat
    Folder1
        Folder1a
            file1a1
            file1a2
        Folder1b
            file1b
        Folder1c
            file1c1
            file1c2

我如何处理文件file1a1,file1a2等?

我想尝试类似的事情:

@echo off
for %%i in ('dir Folder0') do (for %%j in ('dir %%i') do <stuff to %%j>)

但A)它不起作用,B)似乎不是正确的方法。

更新 我想我找到了的作品

@echo off
cd %1
for /r %%i in (*.*) do echo %%i

其中echo代表我想对文件做的事情。但是,我想更明确地遍历目录结构,以便我有一个代表目录名称的变量。我最终希望将处理过的文件放在镜像目录结构中。

更新2: 这不是很有效,因为一旦我进入下层目录,batfile.bat就是一个目录,我无法调用它。我尝试了相当于"../batfile.bat"../batfile.bat,但没有运气。

1 个答案:

答案 0 :(得分:1)

您可以使用for /d命令迭代文件夹,并结合pushdpopd命令。

阅读help forhelp pushd,并在bat文件中尝试此代码

for /d %%a in (*) do (
   echo %%a
   pushd %%a
   for /d %%b in (*) do (
     echo %%a/%%b
   )
   popd
)