我正在尝试在folder1
中创建一个bat文件作为父文件夹,这个名为run.bat
的bat文件将循环遍历所有子文件夹,并调用名为{{1}的bat文件但是,并行,这些child.bat
必须访问同一文件夹中的另一个文件。
例如:
child.bat
Folder1 (have run.bat)
|
|_______Folder2
| |
| |_______aa.txt
| |
| |_______child.bat
|
|_______Folder3
|
|_______bb.txt
|
|_______child.bat
child.bat
,内容为:
Folder2
type aa.txt
child.bat
,内容为:
Folder3
我知道有关于如何循环子文件夹以及在子文件夹中运行bat文件的问题。但我的问题是,bat文件必须访问位于同一子文件夹中的其他文件。如果我们不输入子文件夹(type bb.txt
),cd subfolder
将无法成功执行。以下是我尝试过的child.bat
内容:
run.bat
然而,失败了。
有什么想法吗?
答案 0 :(得分:1)
我的猜测是脚本必须能够从调用for
循环的同一位置一致地更改目录。只需保存当前文件夹(通过pushd
)并在子调用(通过popd
)后恢复它就足够了。
@echo off
FOR /d /r %%i IN (*) DO (
pushd "%%i"
call "child.bat"
popd
)
答案 1 :(得分:0)
根据评论中的额外信息,这应该适合您。
@echo off
FOR /d /r %%i IN (*) DO (
if exist "%%i\child.bat" start "" /d "%%i" "%comspec%" /c "child.bat"
)