Windowのバッチスクリプトでバグが発生したと思います。Windowsバッチ変数が設定されない
拡張された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は、セットではないものを実行します。私は何も見逃したとは思わない。 また、行が実行されなかったelse (echo Not successful.)
として、複数行のif文が正しく行を実行しています。
なぜ行が実行されませんでしたか?コマンドはがを解析されるとき、ないそれらが実行されたときに
これは高速応答でした。それを今見て。 – RandomClown
可能性のある[ウィンドウ内のバッチSETが動作しない場合は重複しています](http://stackoverflow.com/questions/9102422/windows-batch-set-inside-if-not-working) – chwarr
この質問をヘッダーに入れる必要がありますバッチファイルの。 – SteveFest