我试图在“C:\Builds”文件夹中递归查找所有“MyApp.exe”应用程序,并使用“createdatabase closeimmediately”参数/参数运行应用程序。
我目前搜索的内容:ForFiles Microsoft docs
这是 forfiles 模式:forfiles [/p <Path>] [/m <SearchMask>] [/s] [/c "<Command>"] [/d [{+|-}]
[{|}]]
这是我所拥有的:
forfiles /p c:\Builds /s /m MyApp.exe /c "cmd /c start @path" "createdatabase closeimmediately"
如果我运行上面的脚本,它会显示错误:
ERROR: Invalid argument/option - 'createdatabase closeimmediately'.Type "FORFILES /?" for usage.
如果我在没有参数的情况下运行,它会正确找到应用程序并运行,但我需要使用参数运行:
forfiles /p c:\Builds /s /m MyApp.exe /c "cmd /c start @path"
如何使用 ForFiles 中的参数运行应用程序?
最佳答案
我知道评论中提到了这一点,但是评论变得太长了,我无法发表像样的评论,所以这里是一个答案。这应该完全符合您的要求,它将递归搜索文件并执行 if exist
s。
@echo off
for /r "c:\Builds" %%i in (myapp.exe) do if exist "%%i" "%%i" createdatabase closeimmediately
稍微不同的方式,找到所有可执行文件,如果名称匹配,则启动
myapp.exe
:for /r "c:\Builds" %%i in (*.exe) do if /I "%%~nxi" == "myapp.exe" "%%I" createdatabase closeimmediately
关于batch-file - 在目录中查找特定的 *.exe 文件并使用参数运行应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51997845/