我需要语法从第一个批处理文件中调用批处理文件。第二个批处理文件名称随修订而更改。所以我的第二批文件名只有一半。
如何在特定文件夹中搜索并调用第二批文件...?
答案 0 :(得分: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)。
答案 1 :(得分:0)
FOR /R <path>
将为您浏览目录树。
FOR /R "%DIR_TO_SEARCH%" %%b IN (matching_*.bat) DO cmd /c "%%~b"
cmd /c
将创建一个新的shell实例,这意味着如果调用的.BAT文件设置了环境变量,则在调用脚本时不会更改它们。这通常是人们想要的。如果您确实想要保留了这些副作用,则可以使用call "%%~b"
代替。