CMD菜单使用start .命令重复打开同一路径窗口问题求助
解决CMD菜单重复打开同一文件夹的问题
哦,这个问题我之前也碰到过!核心原因是你用的start .默认是打开当前工作目录,而你的脚本在选择不同选项后,并没有切换到对应的目标路径,所以每次执行start .都会复用之前的工作目录,自然打开的还是同一个文件夹。
给你两个简单有效的解决方案:
方案1:直接用start命令指定目标路径
不用依赖当前工作目录,直接把要打开的路径作为参数传给start命令就行。注意start的语法:第一个参数是窗口标题(可以留空,但要写""占位),第二个参数就是目标文件夹路径。
示例脚本:
@echo off :menu cls echo === 文件夹快速打开菜单 === echo 1. 打开 G:\Folder_1 echo 2. 打开 G:\SUBFOLDER\Folder_2 echo 3. 退出菜单 set /p user_choice=请输入选项编号: if "%user_choice%"=="1" ( start "" "G:\Folder_1" goto menu ) if "%user_choice%"=="2" ( start "" "G:\SUBFOLDER\Folder_2" goto menu ) if "%user_choice%"=="3" exit echo [!] 无效选项,请重新输入 pause >nul goto menu
方案2:先切换工作目录再执行start .
如果习惯用start .,可以先通过cd /d命令切换到目标路径(/d参数是跨盘符切换必须的,比如从C盘切到G盘),再执行start .。
示例脚本:
@echo off :menu cls echo === 文件夹快速打开菜单 === echo 1. 打开 G:\Folder_1 echo 2. 打开 G:\SUBFOLDER\Folder_2 echo 3. 退出菜单 set /p user_choice=请输入选项编号: if "%user_choice%"=="1" ( cd /d "G:\Folder_1" && start . goto menu ) if "%user_choice%"=="2" ( cd /d "G:\SUBFOLDER\Folder_2" && start . goto menu ) if "%user_choice%"=="3" exit echo [!] 无效选项,请重新输入 pause >nul goto menu
关键细节提醒
- 如果你的文件夹路径包含空格,一定要用双引号把路径括起来,避免
start或cd命令识别错误。 - 方案1的优势是不会改变脚本的当前工作目录,后续如果有其他依赖工作目录的操作不会受影响;方案2则更贴近你原来的使用习惯。
内容的提问来源于stack exchange,提问作者Henrique Gomes
相关产品推荐
相关产品推荐

