嘿团队,我正在尝试执行一个应用程序,该应用程序位于一个文件夹中,由于版本差异,该文件夹的名称不断更改C:\root\my Folder\subfolder_Ver_1\app.exe
我想在我的文件夹中查找未指定Subfolder_Ver_1
这是我的代码:
FOR /r %F IN (*.*) DO start app "%F"
任何想法??
答案1
也许 forfiles 更适合这项工作。
下面是有关如何创建执行此操作的 .cmd 文件的示例脚本。
:: -- Navigate to the base folder.
cd /d "c:\root\My folder"
:: -- Search for the app and launch it.
forfiles /s /m app.exe /c "cmd /c @path"
请注意,如果有更多同名的应用程序,这将启动所有应用程序。
答案2
导航到你的根文件夹
如果你想继续使用 IF 语句,我发现这个也有效
@echo on
for /r %%F in (app.exe) do %%F
命名您的 cmd 文件,然后运行它。如果只有一个名为 SubFolder_Ver_? 的子文件夹,那么就没问题了。但如果有很多子文件夹,那么这将运行所有子文件夹。如果是这种情况,请使用 IF 语句提取最新的文件夹。如果您给我更多信息,那么我也可以修复它。
答案3
for /r /d %G in (*)do pushd "%~dpnxG" && start "" /b app "%~dpnxG" && popd
或者...
for /r /d %G in (*)do start "" /b /d "%~dpnxG" app
或者...
for /r /d %G in (*)do start "" /w /d "%~dpnxG" app
或者...
for /f delims^= %G in ('where /r . "App.exe"') do start "" /w "%~G"
或者...
for /f delims^= %G in ('where /r . "App.exe"') do start "" /b "%~G"