如何从批处理文件中调用批处理文件

时间:2013-08-07 08:15:46

标签: batch-file dos

我需要语法从第一个批处理文件中调用批处理文件。第二个批处理文件名称随修订而更改。所以我的第二批文件名只有一半。

如何在特定文件夹中搜索并调用第二批文件...?

2 个答案:

答案 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"代替。