Кажется, я столкнулся с ошибкой в пакетном скриптинге Window.
Я не могу установить переменные в расширенном операторе if.
Вот отдельная часть моего сценария:
@echo off
set success=1
set Version=12345
set Target=Client
set Type=456
set dir=
set zip=
if "%Version%"=="" set success=0
if "%Type%"=="" set success=0
if 1==1 set test=42
if %success%==1 (
set test2=57005
if "%Target%"=="Client" (
set dir=ModName v%Version%
set zip=ModName v%Version% %Type%.zip
echo Version: %Version%
echo Type: %Type%
echo.
echo Target: %Target%
echo dir: %dir%
echo zip: %zip%
echo.
echo test: %test%
echo test2: %test2%
)
) else (
echo Not successful.
)
Это вывод совершенно нового экземпляра cmd:
C:\Users\RandomClown\Desktop>test.bat
Version: 12345
Type: 456
Target: Client
dir:
zip:
test: 42
test2:
Что вы должны заметить, так это то, что в одной строке оператор if правильно устанавливает вещи.
Многострочный if выполнит все, что НЕ является множеством. Я не думаю, что я что-то пропустил.
Кроме того, многострочный оператор if правильно выполняет правильные строки, поскольку строки else ( echo Not successful. )
не выполнялись.
Почему строки не выполняются?