Loops 循环浏览bat文件的所有子文件夹并执行bat文件?
我试图在父目录中有一个bat文件,该文件在子文件夹中循环并运行一个名为Loops 循环浏览bat文件的所有子文件夹并执行bat文件?,loops,batch-file,call,directory,Loops,Batch File,Call,Directory,我试图在父目录中有一个bat文件,该文件在子文件夹中循环并运行一个名为callshow.bat的bat文件 这是我到目前为止得到的。我不太擅长这些,所以任何帮助都会很好 for /r %%f in (*) do Call callshow.bat 以下是文件夹结构: Example: Parent:(Where new Bat file will be) Sub Folder 1\folder1\callshow.bat Sub Folder 2\folder2\callshow.bat Su
callshow.bat
的bat文件
这是我到目前为止得到的。我不太擅长这些,所以任何帮助都会很好
for /r %%f in (*) do Call callshow.bat
以下是文件夹结构:
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.......
文件夹结构使其更加清晰,请尝试以下操作:
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
未引用其所在文件夹中的任何文件,或使用%~dp0
引用这些文件,则可以使用此方法(编辑后的方法:)。如果callshow.bat
需要使用call
ing批处理文件所在文件夹中的文件,请使用此方法。否则,可以使用foxidrive的方法。C:\test\batfiletorun.bat
C:\test\folder1\
C:\test\folder2\
要在folder1和folder2中运行batfiletorun.bat:
在命令提示下:
对于(*)中的/r/d%f,请按%f键并调用C:\test\batfiletorun.bat&popd
或者,使用.bat文件运行batfiletorun.bat时,只需%%而不是%,并且runbatfileinsubdirectories.bat由以下行组成,如下所示:
对于(*)中的/r/d%%f,请按“%%f”键并调用C:\test\batfiletorun.bat&popd
现在,您的输入如下所示:
C:\test\batfiletorun.bat
C:\test\runbatfileinsubdirectories.bat
C:\test\folder1\
C:\test\folder2\
希望这能简化某些人的工作。我使用它在子目录中运行重命名bat文件 嗯,这似乎对我不起作用,但谢谢你的帮助。在“c:\bat files\callshow.bat”中放入@echo%cd%,然后再试一次。如果没有子目录,那么它将什么也不做。是的,那也不起作用。我添加了文件夹结构,也许这会有所帮助。现在你已经明确了callshow.bat的位置,我已经删除了callshow.bat.bat的路径,这两个都有效!谢谢你们,这一整天都快把我逼疯了!您使用的方法的一个问题是,工作目录始终是相同的—运行批处理的文件夹,而不是callshow.bat所在的文件夹。@foxidrive它确实提供了一个更简单的方法,并且可能是一个优势,具体取决于
callshow.bat
中的代码。。
for /r %%f in (callshow.b?t) do call "%%f"