#batch-file #if-statement
#пакетный файл #if-оператор
Вопрос:
Я видел несколько статей об ошибке, которую я получаю, я просто не могу понять это. Если я отвечу 1-5, все работает идеально. Если я отвечу 6 или 7, это выдаст ошибку:(set был неожиданным в это время, что-то не так в моих операторах if?
:if
if %q1% == 1 (if %q2% == n (set sku=XG8ATCHUS) else set sku=XW8ATCHUS)
if %q1% == 2 (if %q2% == n (set sku=XG1ATCHUS) else set sku=XW1ATCHUS)
if %q1% == 3 (if %q2% == n (set sku=XG1BTCHUS) else set sku=XW1BTCHUS)
if %q1% == 4 (if %q2% == n (set sku=XG1CTCHUS) else set sku=XW1CTCHUS)
if %q1% == 5 (if %q2% == n (set sku=XG1DTCHUS) else set sku=XW1DTCHUS)
if %q1% == 6 set sku=XG21TCHUS
if %q1% == 7 set sku=XG23TCHUS
if %q3% == f set sku2=FullGuard
if %q3% == e set sku2=EnterpriseGuard
Комментарии:
1. Это происходит, когда переменная
q2
пуста; используйте кавычки, чтобы решить эту проблему;if "%q2%" == "n"
)… Кстати: не используйте имена меток, которые равны командам (:if
)…2. Это сделало это! Я бы пометил это как ответ, если бы это не был комментарий.
Ответ №1:
Обозначение, которое я использую для этого
if "%q1"=="1"
и так далее. Это работает, если параметры пусты, что является проблемой в вашем случае.