格式二:call [:label [arguments] ]
使用call命令,可以调用 FileName(包括批处理文件、其它执行命令)或 :label 标签
1、在小括号内语句块(或复合语句)中,call命令(调用 FileName)的第一次变量展开使用变量直接展开
示例
- ::demo.bat
- @echo off
- setlocal DisableDelayedExpansion
-
- set "mycomd=command"
- set "command=where a.txt"
-
- call %%%mycomd%%%
-
- echo ---------------------------------------------------
-
- :: 在小括号内语句块中测试
- (
- set "mycomd=delayedCommand"
- set "delayedCommand=where b.txt"
-
- REM 变量第一次展开使用直接展开,即:%mycomd%的结果为 %command%
- REM 变量第二次展开使用延迟展开,即:%command% 展开为 where b.txt
- call %%%mycomd%%%
- )
-
- echo ---------------------------------------------------
-
- set "mycomd=command"
-
- :: 在复合语句中测试
- set "mycomd=delayedCommand" & set "delayedCommand=where c.txt" & call %%%mycomd%%%
运行
- C:\>where a.txt b.txt c.txt
- C:\a.txt
- C:\b.txt
- C:\c.txt
-
- C:\>demo.bat
- C:\a.txt