-1

我需要从第一个批处理文件中调用批处理文件的语法。第二个批处理文件的名称随着版本的变化而变化。所以我只有第二个批处理文件名的一半。

我如何在特定文件夹中搜索并调用第二个批处理文件..`?

4

2 回答 2

1

不知道修订前缀或后缀,但你可以尝试这样的事情:

for /f "tokens=1" %%n in ('dir /on /l /b /a-d "bat_file_*.bat"') do set latest_bat_file=%%n

它依靠 dir /on 按名称排序,因此它将最后一个条目按字母顺序放在变量 %latest_bat_file% 中。然后,您可以使用以下命令调用它:

call "%latest_bat_file%"

这假定您的 bat 文件名中没有空格,并且修订是数字或字母后缀。如果您使用数字,为避免排序问题,请在修订名称前加上零(例如 bat_file_001、bat_file_002)。

于 2013-08-07T09:11:11.193 回答
0

FOR /R <path>将为您遍历目录树。

FOR /R "%DIR_TO_SEARCH%" %%b IN (matching_*.bat) DO cmd /c "%%~b"

cmd /c将创建一个新的 shell 实例,这意味着如果调用的 .BAT 文件设置了环境变量,则它们不会在调用脚本中更改。这通常是人们想要的。如果您确实希望保留这些副作用,则可以call "%%~b"改用。

于 2013-08-07T13:52:40.857 回答