如何在批处理脚本中连接两个变量?

时间:2011-10-21 07:56:49

标签: batch-file command-prompt

我想在批处理脚本中做这样的事情。如果这是正确的或可能的方式或任何其他方式,请告诉我?

set var1=A

set var2=B

set AB=hi

set newvar=%var1%%var2%

echo %newvar%  

这应该产生值“hi”。

3 个答案:

答案 0 :(得分:19)

启用延迟变量扩展可以解决您的问题,脚本会生成“hi”:

setlocal EnableDelayedExpansion

set var1=A
set var2=B

set AB=hi

set newvar=!%var1%%var2%!

echo %newvar%

答案 1 :(得分:6)

您可以在没有setlocal的情况下执行此操作,因为setlocal命令变量将无法在endlocal生存,因为它是在setlocal中创建的。通过这种方式,变量将以正确的方式定义。

为此,请使用此代码:

set var1=A

set var2=B

set AB=hi

call set newvar=%%%var1%%var2%%%

echo %newvar% 

注意:在设置变量之前,你必须使用call,否则它将无效。

答案 2 :(得分:2)

方法是正确的,但可以使用扩展的set-syntax进行一些改进。

set "var=xyz"

将var设置为内容,直到最后一个引号,这样可以确保不会追加“隐藏”空格。

您的代码看起来像

set "var1=A"
set "var2=B"
set "AB=hi"
set "newvar=%var1%%var2%"
echo %newvar% is the concat of var1 and var2
echo !%newvar%! is the indirect content of newvar