Ошибка пакетного файла
Когда я запускаю следующий пакетный файл, он показывает мне ошибку, что "Имя каталога неверно". EXE-файл блокнота и другие файлы находятся в папке System32. Я не уверен, как написать путь:
@echo off
CLS
:Menu
ECHO.
ECHO...............................................
ECHO PRESS 1, 2 to select your task; or 3 to exit
ECHO...............................................
EcHO.
ECHO 1 - OPEN NOTEPAD
ECHO 2 - OPEN WRITE
ECHO 3 - OPEN EXIT
ECHO.
SET /p M=Type 1,2, or 3 then press enter:
IF %M% == 1 GOTO NOTEPAD
IF %M% == 2 GOTO WRITE
IF %M% == 3 GOTO EOF
:NOTEPAD
cd %windir%\notepad.exe
start notepad.exe
GOTO MENU
:WRITE
cd %windir%\write.exe
start write.exe
GOTO MENU
Спасибо Кен
2 ответа
Решение
Ты не можешь cd
в файл, просто каталог. Поскольку они находятся в папке System32, они уже находятся в системном пути, поэтому вам даже не нужно переходить в этот каталог.
@echo off
CLS
:Menu
ECHO.
ECHO...............................................
ECHO PRESS 1, 2 to select your task; or 3 to exit
ECHO...............................................
EcHO.
ECHO 1 - OPEN NOTEPAD
ECHO 2 - OPEN WRITE
ECHO 3 - OPEN EXIT
ECHO.
SET /p M=Type 1,2, or 3 then press enter:
IF %M% == 1 GOTO NOTEPAD
IF %M% == 2 GOTO WRITE
IF %M% == 3 GOTO EOF
:NOTEPAD
start notepad.exe
GOTO MENU
:WRITE
start write.exe
GOTO MENU
Если вы хотите сбить с толку, вы можете использовать следующие команды:
@echo off
CLS
set %mydir%=C:\Windows\System32
:Menu
ECHO.
ECHO...............................................
ECHO PRESS 1, 2 to select your task; or 3 to exit
ECHO...............................................
EcHO.
ECHO 1 - OPEN NOTEPAD
ECHO 2 - OPEN WRITE
ECHO 3 - OPEN EXIT
ECHO.
SET /p M=Type 1,2, or 3 then press enter:
IF %M% == 1 GOTO NOTEPAD
IF %M% == 2 GOTO WRITE
IF %M% == 3 GOTO EOF
:NOTEPAD
start %mydir%\notepad.exe
GOTO MENU
:WRITE
start %mydir%\write.exe
GOTO MENU
:EOF
PAUSE
EXIT
Еще одна проблема, которую я заметил, заключается в том, что у вас нет сценария:EOF.... Это работает?