Tôi nghĩ rằng tôi đã gặp phải một lỗi trong kịch bản lệnh batch của Window.Biến hàng loạt của Windows sẽ không đặt
Tôi không thể đặt các biến nằm trong câu lệnh if được mở rộng.
Dưới đây là một phần không thể tách biệt của kịch bản của tôi:
@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.
)
Đây là sản phẩm từ một thương hiệu thể hiện mới của cmd:
C:\Users\RandomClown\Desktop>test.bat
Version: 12345
Type: 456
Target: Client
dir:
zip:
test: 42
test2:
Những gì bạn cần chú ý đó là các dòng lệnh if đặt đúng công cụ. Đa dòng nếu sẽ thực hiện bất kỳ thứ gì KHÔNG phải là bộ. Tôi không nghĩ rằng tôi đã bỏ lỡ bất cứ điều gì. Ngoài ra, câu lệnh if multiline đang thực hiện đúng các dòng bên phải vì các dòng else (echo Not successful.)
không thực thi.
Tại sao các dòng không thực thi?
wow đó là phản hồi nhanh. Nhìn vào nó ngay bây giờ. – RandomClown
Có thể trùng lặp của [windows batch SET bên trong IF không hoạt động] (http://stackoverflow.com/questions/9102422/windows-batch-set-inside-if-not-working) – chwarr
Chúng ta cần đặt câu hỏi này vào tiêu đề của 'batch-file'. – SteveFest