给定文件夹结构
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
,但没有运气。
答案 0 :(得分:1)
您可以使用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
)