如何在 Windows CLI 中使用 FOR 循环查看子文件夹

如何在 Windows CLI 中使用 FOR 循环查看子文件夹

嘿团队,我正在尝试执行一个应用程序,该应用程序位于一个文件夹中,由于版本差异,该文件夹的名称不断更改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" 

相关内容