我在CMD中创建了一个菜单,根据选项,将打开一个具有特定路径的窗口 . 我正在使用“start . ”命令 .
我让它工作到我可以选择一个选项,它将打开所需的窗口 . 但是,如果在同一个会话中我选择了不同的选项,则会打开相同的窗口,而不是另一个窗口 . 例如,如果我选择选项1,则会在G:\ Folder_1处打开一个窗口 . 当我选择选项2时,它不会转到G:\ SUBFOLDER \ Folder_2,而是转到G:\ Folder_1 . 如果我关闭窗口,重新打开.bat文件并选择选项2,它会将我引导到正确的文件夹 . 如何在同一部分打开不同的窗口?
我已经尝试将每个菜单选项作为一个不同的.bat文件运行,并使用start命令来运行该文件,但它做了同样的事情 .
以下是我的代码示例:
: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” . 当在那里执行“Start . ”命令时,将使用此路径打开一个窗口 . 现在,下次进入选项2时,应根据代码将当前文件夹更改为“G:\” . 但实际上你仍然留在“G:\ Folder_1” .
相对于此路径,所有CD命令都将变为无效 .
纠正相对路径将解决问题 . 每次进入和选项时,我都会编辑您的代码以将当前工作目录更改为根驱动器“G:\” . 因此,相对于当前工作目录,选项中的其余CD命令变为有效 .
在编写代码时,您可能错过了“cd G:\”命令 .
我通过将位置合并到
Start
命令中来建议以下方法:如果您的操作系统拥有它,最好使用
Choice
命令 . (有关更多信息,请在命令提示符下输入Choice /?
) .