批处理文件处理子目录下的文件



给定文件夹结构

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:

这不是很有效,因为一旦我cd到下目录,batfile.bat在上一个目录,我不能调用它。我尝试了"../batfile.bat"../batfile.bat的等价物,但运气不好。

您可以使用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
)

最新更新