首页 文章

从cmd打开窗口

提问于
浏览
0

我在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 回答

  • 0

    您的代码编写方式使您将工作文件夹作为“G:\”驱动器启动 . 然后,当您选择选项1时,将当前文件夹更改为“G:\ Folder_1” . 当在那里执行“Start . ”命令时,将使用此路径打开一个窗口 . 现在,下次进入选项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
    
  • 1

    我通过将位置合并到 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 /? ) .

相关问题