Ошибка пакетного файла

Когда я запускаю следующий пакетный файл, он показывает мне ошибку, что "Имя каталога неверно". 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.... Это работает?

Другие вопросы по тегам