notepad++需通过“运行→运行…”(f5)输入cmd /k cd /d "$(current_directory)"在当前文件目录打开cmd,/k保持窗口开启便于查看输出,$(current_directory)仅在运行对话框生效且无需手动加引号,未保存文件时该变量为空会导致cmd退至默认目录。

Notepad++ 怎么在当前文件目录打开 CMD
Notepad++ 本身不内置终端,但可以通过 运行 → 运行…(F5)调用系统 CMD 并自动切换到当前文件所在目录。关键不是“打开 CMD”,而是让 CMD 正确执行 cd /d 切换路径。
- 必须使用
cmd /k cd /d "$(CURRENT_DIRECTORY)",/k表示执行完命令后保持窗口打开,/d支持跨盘符切换(比如从 C: 切到 D:\project) -
$(CURRENT_DIRECTORY)是 Notepad++ 内置变量,只在“运行”对话框中生效;它不会展开成带引号的路径,所以路径含空格时也无需手动加引号 - 如果当前没打开任何文件,
$(CURRENT_DIRECTORY)为空,CMD 会退回到系统默认目录(通常是用户文档),不会报错但容易误判 - 不要用
cmd /c:/c 执行完就关闭窗口,根本来不及看输出
怎么保存为快捷键一键调用
每次输命令太麻烦,直接存成快捷键最实用:
- 按 F5 打开运行对话框,输入
cmd /k cd /d "$(CURRENT_DIRECTORY)" - 点击“保存”,填一个名字(比如
Open CMD Here) - 在“快捷键”栏按组合键(如
Ctrl+Shift+C),点击“添加” - 注意:如果快捷键已被占用(比如
Ctrl+C是复制),Notepad++ 会静默失败,不提示——建议先点“删除”再重试
保存后,只要当前有已保存的文件,按下快捷键就会弹出 CMD 窗口,且光标已定位在该文件所在目录。
为什么在插件里执行 dir 或 g++ 总是找不到文件
因为 NppExec、Python Script 等插件默认工作目录 ≠ 当前文件目录,而是 Notepad++ 启动时的 cwd(由快捷方式“起始位置”决定)。
- 常见现象:
dir build报“系统找不到指定路径”,其实 build 文件夹就在当前文件同级目录 - 解决方法不是改插件设置,而是在脚本开头显式切换:
cd /d $(CURRENT_DIRECTORY)(NppExec)或os.chdir(notepad.getFullFilename().rsplit('\', 1)[0])(Python Script) - 错误做法:依赖
os.getcwd()获取路径,它返回的是 Notepad++ 的启动目录,不是你编辑的文件位置
和 Windows 资源管理器“在此处打开终端”的区别
Win11 右键菜单里的“在终端中打开”调用的是 Windows Terminal + PowerShell,默认工作目录确实是当前文件夹;但 Notepad++ 的方案更可控:
- 它不依赖系统右键菜单注册表项,不受“隐藏开发者选项”或组策略影响
- 可绑定任意快捷键,适合键盘流用户
- 能和
$(FULL_CURRENT_PATH)等变量组合,实现“编译当前文件 + 运行”一体化流程(比如cmd /k cd /d "$(CURRENT_DIRECTORY)" & g++ "$(FULL_CURRENT_PATH)" -o "$(NAME_PART).exe" & "$(NAME_PART).exe" & PAUSE)
真正容易被忽略的点是:这个机制完全不关心你当前编辑的文件是否已保存。未保存的临时文件(new 1)没有 $(CURRENT_DIRECTORY),变量为空,CMD 就会落到默认目录——务必先保存文件再触发。











