Открывающееся окно из cmd
Я создал меню в CMD, где в зависимости от опции открывалось окно с определенным путем. Я использую команду "Пуск".
Я получил его работать до такой степени, что я могу выбрать вариант, и он откроет нужное окно. Однако, если в том же сеансе я выберу другую опцию, откроется то же самое окно, а не другое. Например, если я выбрал вариант 1, окно откроется в G:\Folder_1. Когда я выбираю вариант 2, вместо перехода к G:\SUBFOLDER\Folder_2 он переходит к G:\Folder_1. Если я закрою окно, снова открою файл.bat и выберу вариант 2, он направит меня в нужную папку. Как я могу открыть разные окна в одном разделе?
Я попытался запустить каждый пункт меню как отдельный файл.bat и использовать команду запуска для запуска файла, но он сделал то же самое.
Вот пример моего кода:
:MENU
echo [1]Option 1
echo [2]Option 2
echo [3]Option 3
echo [4]Exit
set /p MS= Choose your option:
If %MS%==1 goto OPTION_1
If %MS%==2 goto OPTION_2
If %MS%==3 goto OPTION_3
If %MS%==4 goto END
:OPTION_1
G:
cd "Folder_1"
Start .
goto :Menu
:OPTION_2
G:
cd SUBFOLDER
cd Folder_2
start .
goto :Menu
:OPTION_3
G:
cd SUBFOLDER
cd Folder_3
start .
goto :Menu
:END
Pause
2 ответа
Ваш код написан так, что вы запускаете свою рабочую папку как диск "G:\". Затем, когда вы выбираете вариант 1, вы меняете текущую папку на "G:\Folder_1". При выполнении команды "Старт" открывается окно с этим путем. Теперь в следующий раз, когда вы перейдете к варианту 2, вам следует изменить текущую папку на "G:\" в соответствии с вашим кодом. Но на самом деле вы остаетесь в "G:\Folder_1".
Относительно этого пути все ваши команды CD становятся недействительными.
Исправление относительных путей решит проблему. Я отредактировал твой код, чтобы при каждом вводе и выборе опции менять текущий рабочий каталог на корневой диск "G:\". Таким образом, относительно текущего рабочего каталога остальные команды CD в опциях становятся действительными.
Возможно, вы пропустили команду "cd G:\" во время написания кода.
:MENU
echo [1]Option 1
echo [2]Option 2
echo [3]Option 3
echo [4]Exit
set /p MS= Choose your option:
If %MS%==1 goto OPTION_1
If %MS%==2 goto OPTION_2
If %MS%==3 goto OPTION_3
If %MS%==4 goto END
:OPTION_1
cd G:\
G:
cd "Folder_1"
Start .
goto :Menu
:OPTION_2
cd G:\
G:
cd SUBFOLDER
cd Folder_2
start .
goto :Menu
:OPTION_3
cd G:\
G:
cd SUBFOLDER
cd Folder_3
start .
goto :Menu
:END
Pause
Я бы предложил следующий метод, включив местоположение в Start
команда:
:MENU
Echo [1]Option 1
Echo [2]Option 2
Echo [3]Option 3
Echo [4]Exit
Set "MS="
Set /P "MS= Choose your option: "
If "%MS%"=="1" GoTo OPTION_1
If "%MS%"=="2" GoTo OPTION_2
If "%MS%"=="3" GoTo OPTION_3
GoTo END
:OPTION_1
Start "" /D "G:\Folder_1" "Option 1.exe"
GoTo :Menu
:OPTION_2
Start "" /D "G:\SUBFOLDER\Folder_2" "Option 2.exe"
GoTo :Menu
:OPTION_3
Start "" /D "G:\SUBFOLDER\Folder_3" "Option 3.exe"
GoTo :Menu
:END
Pause
Было бы лучше использовать Choice
команда, если ваши операционные системы имеют его. (Войти Choice /?
в командной строке для получения дополнительной информации).