根本原因是cmd执行完就关窗,不是脚本没跑;调试阶段必须用cmd /k "$(full_current_path)"保留窗口查错,正式运行可用cmd /c,路径含空格或中文时外层双引号不可省。

Notepad++ 里 F5 运行 .bat 文件一闪就消失
根本原因是 cmd 执行完就关窗,不是脚本没跑。调试阶段必须用 cmd /k 而不是 cmd /c:
• cmd /k "$(FULL_CURRENT_PATH)" ——窗口保留,能看清报错
• cmd /c "$(FULL_CURRENT_PATH)" ——适合正式运行,执行完自动退出
• 路径含空格或中文时,"$(FULL_CURRENT_PATH)" 外层双引号绝对不能删,否则 cmd 截断路径
• 如果脚本里有 pause,仍建议用 /k,避免因权限或杀软拦截导致 pause 不响应
保存后双击 .bat 没反应,或提示“不是内部或外部命令”
问题不在 Notepad++ 编辑器本身,而在文件保存方式和内容硬伤:
• 文件名必须是 xxx.bat,不能是 xxx.bat.txt(Windows 隐藏扩展名时极易误存)
• 编码选 ANSI 或 UTF-8 无 BOM;UTF-8 with BOM 会导致首行 @echo off 被当乱码解析,直接失败
• 第一行别写中文注释,比如 【开始】 或 // 初始化 —— cmd 解析器不认识,会当作命令执行而报错
• 脚本调用的命令(如 python、ping)必须在系统 PATH 中,或写成绝对路径,例如 "C:\Windows\System32\ping.exe" 127.0.0.1
想绑定 Ctrl+B 一键运行,但快捷键没生效
Notepad++ 不提示快捷键冲突,设完必须手动测试:
• 先在「运行 → 运行…」(F5) 输入 cmd /k "$(FULL_CURRENT_PATH)",点「保存…」,起名如 Run BAT (keep)
• 去「设置 → 快捷键管理 → 运行命令」,找到刚存的条目,绑定快捷键(如 Ctrl+B)
• 名称中不能含引号、斜杠、中文,否则菜单项可能不显示
• 绑定后务必按一遍测试——若没反应,大概率是快捷键被其他软件(如输入法、远程工具)劫持了
脚本里用相对路径,但在 Notepad++ 里运行就找不到文件
Notepad++ 启动的 cmd 默认工作目录是它自己的安装路径,不是你的脚本所在目录:
• 正确做法是在运行命令里显式切换目录:cmd /k "cd /d "$(CURRENT_DIRECTORY)" && "$(FULL_CURRENT_PATH)"
• cd /d 支持跨盘符切换,比单纯 cd 更可靠
• 别用 $(FILE_NAME) 或 $(NAME_PART) 代替 $(FULL_CURRENT_PATH),它们不含路径,import 或读取同目录文件时必然失败
• 若脚本需管理员权限(如修改注册表),Notepad++ 必须也以管理员身份启动,否则静默失败,连错误都不报











