Windows:从命令行递归搜索并执行批处理文件

Windows:从命令行递归搜索并执行批处理文件

我有一个带有嵌套文件夹的项目。

我希望能够递归查找目录,直到找到“build.bat”文件并执行它。

我如何从命令行执行此操作?(即不是批处理文件本身)。

背景(可选):尝试利用 vim 的编译器和 makeprg 设置来运行位于项目某处的构建文件,并将输出重定向到快速提示。

答案1

假设某个特定项目的根文件夹是,d:\Remote并且它是您当前的工作目录。然后(从我的命令提示符窗口复制并粘贴):

d:\Remote>for /F "delims=" %G in ('dir /b /s build.bat') do @echo "%~G"
"d:\Remote\bat\test\build.bat"

然后您可以简单地删除@echo...

如果你在另一个工作目录中:

d:\bat>for /F "delims=" %G in ('dir /b /s "d:\Remote\build.bat"') do @echo "%~G"
"d:\Remote\bat\test\build.bat"

笔记可能会找到多个文件;如果@echo删除,则所有找到的文件都会被执行:

d:\Remote>for /F "delims=" %G in ('dir /b /s cdn.bat') do @echo "%~G"
"d:\Remote\bat\cdn.bat"
"d:\Remote\bat\test\cdn.bat"

资源(必读):

相关内容