• Администрация SafeZone приветствует вас на нашем форуме!
    Если вы больше не желаете видеть рекламу при просмотре тем и сообщений - то достаточно просто зарегистрироваться. Для зарегистрированных пользователей реклама не отображается.

[CMD] ошибка синтаксиса команды

alex_diablo

Пользователь
Сообщения
132
Симпатии
9
#1
добрый день. помогите понять, в чем ошибка:

кусок кода:

CMD/BATCH:
echo   1 Continue installation with selected version
echo   2 Choose another version
echo   3 Back to the list found
echo   4 Back to the main menu
echo   5 Exit
echo.
echo.
choice /C 12345 /M "> Choose your action: " /N
if errorlevel 5 goto exit_menu
if errorlevel 4 goto begin
if errorlevel 3 goto dialog
if errorlevel 2 goto single_setup
if errorlevel 1 goto setup2

:: another code
:: another code
:: another code

:exit_menu

if exist %file1% (del %file1%)
if exist %file2% (del %file2%)
exit
при выборе пункта меню 5 выдает ошибку: "ошибка в синтаксисе команды"

подскажите, что не так?
 
Последнее редактирование:

Кирилл

Команда форума
Администратор
Сообщения
13,128
Симпатии
5,706
#2
Так у вас в любом пункте ошибка будет.
Куда goto ссылается?

CMD/BATCH:
echo  1  Continue installation with selected version
echo 2  Choose another version
echo   3 Back to the list found
echo   4 Back to the main menu
echo  5  Exits
echo.
echo.
choice /c 12345  /M  "Choose your action" 
if errorlevel  5 goto exi_menu
if errorlevel 4 goto begin
if errorlevel 3 goto dialog
if errorlevel 2 goto single_setup
if errorlevel 1 goto setup2

:: another code
:: another code
:: another code
exit /b
:exi_menu

pause

exit
 
Последнее редактирование:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,501
Симпатии
5,331
#3
Ну, потому что переменная file1 не задана.
Нужно брать в кавычки.
 

Кирилл

Команда форума
Администратор
Сообщения
13,128
Симпатии
5,706
#4
Я,кстати,люблю такую красоту:
Один раз вставляешь такой блок
CMD/BATCH:
:choice

setlocal
if "%~1"=="" (
  set result=0
  pause
  goto choice_3
)
set count=0
:choice_1
set /a count+=1
echo %count%. %~1
shift
if not "%~1"=="" goto choice_1
:choice_2
set /p result=Ваш выбор (1-%count%):
for /l %%i in (1, 1, %count%) do if "%result%"=="%%i" goto choice_3
goto choice_2
:choice_3
endlocal & exit /b %result%
А дальше просто везде меню,которое можно менять хоть сто раз по скрипту:
CMD/BATCH:
call :choice "тыщ" "тыдыщ" "тыдыдыщ" "Выход"

if %ErrorLevel% EQU 1 ( Call :WIN7 )
                                 
if %ErrorLevel% EQU 2 ( Call :operacion )
                                 
if %ErrorLevel% EQU 3 ( Call :findstrlog )

if %ErrorLevel% EQU 4 ( Call :Exite ) )
                                  
                                     
exit /b
 
Последнее редактирование: