我需要从第一个批处理文件中调用批处理文件的语法。第二个批处理文件的名称随着版本的变化而变化。所以我只有第二个批处理文件名的一半。
我如何在特定文件夹中搜索并调用第二个批处理文件..`?
我需要从第一个批处理文件中调用批处理文件的语法。第二个批处理文件的名称随着版本的变化而变化。所以我只有第二个批处理文件名的一半。
我如何在特定文件夹中搜索并调用第二个批处理文件..`?
不知道修订前缀或后缀,但你可以尝试这样的事情:
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)。
FOR /R <path>
将为您遍历目录树。
FOR /R "%DIR_TO_SEARCH%" %%b IN (matching_*.bat) DO cmd /c "%%~b"
cmd /c
将创建一个新的 shell 实例,这意味着如果调用的 .BAT 文件设置了环境变量,则它们不会在调用脚本中更改。这通常是人们想要的。如果您确实希望保留这些副作用,则可以call "%%~b"
改用。