http://ss64.com/nt/syntax-args.html中的文章“以参考文献传递”提及以下内容:
除了在命令行上传递数值或字符串值外, 也可以传递变量名,然后使用变量 在脚本或子程序之间传输数据。
但是我该怎么做?当我设置变量的值并将其名称传递给
时set parm=42
call sub.bat parm
如何在sub.bat
中使用它?
答案 0 :(得分:5)
通过延迟扩张
@echo off
setlocal
set var1=value1
set var2=value2
call :sub var1
call :sub var2
exit /b
:sub
setlocal enableDelayedExpansion
echo %~1=!%~1!
exit /b
- 输出 -
var1=value1
var2=value2
答案 1 :(得分:0)
按名称引用它们,2.bat从1.bat运行将继承相同的环境块,所以
1.BAT
set parm=42
echo parm is '%parm%'
call 2.bat
echo parm is '%parm%'
2.BAT
set parm=XXX%parm%XXX
会打印:
parm is '42'
parm is 'XXX42XXX'
(使用call sub.bat %parm%
会将parm
的副本提供给%1
中的sub.bat