以下程序最终总是回应“machine-abc”:
@echo Off
set dropLoc=machine-abc
IF %computername% == "xyz" (
%dropLoc% = machine-xyz
)
echo %dropLoc%
这是范围问题吗? if语句中的dropLoc变量是否具有不同的范围?我尝试了以下方法来解决这个问题:
@echo Off
set dropLoc=machine-abc
IF %computername% == "xyz" (
!dropLoc! = machine-xyz
)
echo %dropLoc%
和
@echo Off
set dropLoc=machine-abc
IF %computername% == "xyz" (
set dropLoc = machine-xyz
)
echo %dropLoc%
我如何使这项工作?
答案 0 :(得分:22)
第一次你有SET
语法,你怎么决定第二次写别的东西?此外,您必须在比较的两侧添加引号。与其他脚本解释器不同,引号对于批处理解释器并不特殊。
@echo off
rem Change this for testing, remove for production
set computername=xyz
set dropLoc=machine-abc
if "%computername%" == "xyz" (
set dropLoc=machine-xyz
)
echo %dropLoc%