给定文件夹结构
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
表示我想对文件执行的操作。但是,我希望更显式地遍历目录结构,以便有一个表示目录名称的变量。我最终想把处理过的文件放在镜像目录结构中。
这不是很有效,因为一旦我cd到下目录,batfile.bat
在上一个目录,我不能调用它。我尝试了"../batfile.bat"
和../batfile.bat
的等价物,但运气不好。
您可以使用for /d
命令,结合pushd
和popd
命令遍历文件夹。
读取help for
和help pushd
,并在bat文件中尝试此代码
for /d %%a in (*) do (
echo %%a
pushd %%a
for /d %%b in (*) do (
echo %%a/%%b
)
popd
)