我试图获取一个批处理文件,其中包含一个获取参数/返回值的简单函数。实际上我无法做到这一点!
test.bat的:
@echo off
setlocal EnableDelayedExpansion
set arg=bar
echo my args %*
echo my new value %arg%
endlocal&set %~1=%arg%
main.bat:
@echo off
setlocal EnableDelayedExpansion
set var1=foo
echo Old value: %var1%
call test.bat %var1%
echo New value: %var1%
这是控制台返回的内容:
Old value: foo
my args: foo
my new value: bar
New value: foo
答案 0 :(得分:0)
在main.bat
中,您需要回显%foo%
的价值内容,而不是%var1%
的价值内容:
变化:
echo New value: %var1%
要:
Echo New value: !%var1%!
答案 1 :(得分:0)
您的main.bat
正在将%var1%
作为test
传递给%1
程序。 var1
已展示价值foo
,因此%1
中的test
为foo
,因此foo
将被修改为bar
,不是var1
。试试echo
%foo%,而不是var1