通过脚本之间的引用传递参数

时间:2013-01-15 13:21:36

标签: batch-file cmd

http://ss64.com/nt/syntax-args.html中的文章“以参考文献传递”提及以下内容:

  

除了在命令行上传递数值或字符串值外,   也可以传递变量名,然后使用变量   在脚本或子程序之间传输数据。

但是我该怎么做?当我设置变量的值并将其名称传递给

set parm=42
call sub.bat parm

如何在sub.bat中使用它?

2 个答案:

答案 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