Подтвердить что ты не робот

Задайте переменную в блоке "if"

Следующая программа всегда перекликается с "machine-abc" в конце:

@echo Off
set dropLoc=machine-abc
IF %computername% == "xyz" (
 %dropLoc% = machine-xyz
) 
echo %dropLoc%

Является ли эта проблема проблемой? Является ли переменная dropLoc в выражении if другой областью? Я попытался решить проблему:

@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%

Как мне сделать эту работу?

4b9b3361

Ответ 1

У вас есть синтаксис SET в первый раз, как вы решили написать что-то еще во второй раз? Кроме того, вы должны добавить кавычки по обе стороны от сравнения. В отличие от других интерпретаторов script, кавычки не являются специальными для пакетного интерпретатора.

@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%