(набор был неожиданным в это время

#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"

и так далее. Это работает, если параметры пусты, что является проблемой в вашем случае.