batch-file - 在目录中查找特定的 *.exe 文件并使用参数运行应用程序

标签 batch-file cmd scripting

我试图在“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/

相关文章:

batch-file - 如何从批处理文件创建空文本文件?

file - ROBOCOPY - 将文件夹内容复制到单个文件夹

visual-studio - 从另一个批处理文件运行一个批处理文件

java - 如何编写java程序来启动远程机器上的程序?

scripting - 如何使用 script/powershell/... 确定远程计算机上的 session ID 以便与 psexec -i 一起使用?

linux - unix 中的 Bash Shell 脚本以 rsh 到另一台机器并执行命令

c# - 是否可以在 .exe 中嵌入 bat 文件并将其与 Process 类一起使用?

cmd - 使用cmd获取没有系统路径的当前用户路径变量

python - 如何不打印命令输出?

linux - 我如何使这个 awk 命令的真实结果发出像 sendmail 等命令