我有一个带有嵌套文件夹的项目。
我希望能够递归查找目录,直到找到“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"
资源(必读):
- (命令参考)Windows CMD 命令行的 AZ 索引
- (其他细节)Windows CMD Shell 命令行语法
- (
%~G
等专题页面)命令行参数(参数)