我正在尝试在父目录中创建一个bat文件,该文件循环遍历子文件夹并运行名为callshow.bat
的bat文件。
这是我到目前为止所得到的。我不是很擅长这些,所以任何帮助都会很棒!
for /r %%f in (*) do Call callshow.bat
这是文件夹Structure:
Example:
Parent:(Where new Bat file will be)
Sub Folder 1\folder1\callshow.bat
Sub Folder 2\folder2\callshow.bat
Sub Folder 3\folder3\callshow.bat
Sub Folder 4\folder4\callshow.bat
Sub Folder 5\folder5\callshow.bat
etc.......
答案 0 :(得分:7)
@echo off
for /r /d %%f in (*) do pushd "%%f" & Call "callshow.bat" & popd
答案 1 :(得分:3)
文件夹结构使它更清晰,试试这个:
for /d /r %%i in (*) do if exist "%%i\callshow.bat" call "%%i\callshow.bat"
编辑:这可能会有效:
for /r %%f in (callshow.b?t) do call "%%f"
要从for /r
获得一致的结果,需要使用通配符,因此b?t
即使它符合callshow.bit
和callshow.bbt
等。
编辑2:如果callshow.bat
未引用其所在文件夹中的任何文件,或使用{{1},则可以使用此方法(编辑后的:)引用它们。如果%~dp0
需要使用位于callshow.bat
批处理文件所在的文件夹中的文件,请使用此方法。否则,可以使用foxidrive的方法。
答案 2 :(得分:2)
C:\测试\ batfiletorun.bat C:\测试\文件夹1 \ C:\测试\文件夹2 \
在folder1和folder2中运行batfiletorun.bat:
从命令提示符:
for / r / d%f in(*)do pushd“%f”&调用C:\ test \ batfiletorun.bat& POPD
或者,使用.bat文件运行batfiletorun.bat只会有%%而不是%,看起来如下所示,runbatfileinsubdirectories.bat包含以下行:
for / r / d %% f in(*)do pushd“%% f”&调用C:\ test \ batfiletorun.bat& POPD
现在您的输入如下所示: C:\测试\ batfiletorun.bat C:\测试\ runbatfileinsubdirectories.bat C:\测试\文件夹1 \ C:\测试\文件夹2 \
希望这可以简化那里的人的事情。我用它在子目录中运行重命名bat文件。