Penso di aver riscontrato un errore nello script batch di Windows.Le variabili batch di Windows non verranno impostate
Non riesco a impostare le variabili contenute in un'istruzione estesa se.
Ecco una parte isolata del mio script:
@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.
)
Questa è l'uscita da una nuova istanza di cmd:
C:\Users\RandomClown\Desktop>test.bat
Version: 12345
Type: 456
Target: Client
dir:
zip:
test: 42
test2:
Che cosa si dovrebbe notare è che la singola linea di istruzione if imposta correttamente le cose La multilinea se eseguirà tutto ciò che NON è un set. Non penso di aver perso nulla. Inoltre, l'istruzione multiline if sta eseguendo correttamente le linee giuste, poiché le righe else (echo Not successful.)
non sono state eseguite.
Perché le righe non sono state eseguite?
wow questa è stata una risposta rapida. Guardandolo ora. – RandomClown
Possibile duplicato di [batch di windows SET in IF non funzionante] (http://stackoverflow.com/questions/9102422/windows-batch-set-inside-if-not-working) – chwarr
Dobbiamo inserire questa domanda nell'intestazione di 'batch-file'. – SteveFest