Sublime默认不识别.ps1文件,需装jbrooksuk的PowerShell插件并绑定扩展名;右下角选PowerShell仅当前生效,永久绑定需通过Open all with current extension as…;构建系统须指定powershell.exe或pwsh.exe路径,并配置file_regex、encoding等参数确保调试正常。

Sublime 本身不识别 .ps1 文件,也不会自动高亮 PowerShell 语法——你看到的只是纯文本,变量、命令、字符串全一个颜色。这不是 Sublime 坏了,是它压根没把文件当 PowerShell 处理。
如何让 .ps1 文件正确高亮?
右下角状态栏显示的是当前语法(比如 “Plain Text”),点它 → 选 “PowerShell”。但这只对当前文件生效。要让所有 .ps1 文件一打开就高亮,得装插件并手动绑定扩展名:
- 用
Ctrl+Shift+P打开命令面板,输入Package Control: Install Package,搜PowerShell(作者 jbrooksuk,别选年久失修的老版本) - 装完后,右下角再点语法名 →
Open all with current extension as…→ 选PowerShell - 如果仍不生效,进
Preferences → Package Settings → PowerShell → Settings,确认"extensions"列表里有"ps1"
Ctrl+B 运行 .ps1 脚本失败:不是内部或外部命令
这是最常卡住的地方:Sublime 默认调用 cmd.exe,而 .ps1 不是 cmd 的可执行格式。必须显式调用 powershell.exe 或 pwsh.exe,且路径不能靠环境变量——64 位系统下 Sublime 可能以 32 位进程启动,PATH 里的 powershell 找不到。
- 菜单
Tools → Build System → New Build System…,粘贴以下内容并保存为PowerShell.sublime-build: "cmd": ["C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe", "-ExecutionPolicy", "Bypass", "-NoProfile", "-File", "$file"]- 或者更稳妥(尤其用了 PowerShell 7+):
"cmd": ["pwsh.exe", "-ExecutionPolicy", "Bypass", "-NoProfile", "-File", "$file"],前提是pwsh.exe在PATH中且 Sublime 能访问到 - 必须加
"selector": "source.powershell",否则按Ctrl+B时 Sublime 不知道该用哪个构建系统
运行后窗口一闪而过,看不到输出
PowerShell 脚本执行完立即退出,和 CMD 下 pause 的作用一样,但 PowerShell 没有等价内置命令。别在脚本末尾硬加 Read-Host——它依赖回车,且可能被管道/重定向干扰。
- 调试阶段最可靠的是:
$host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown"),加在脚本最后一行 - 想一劳永逸?改构建系统,用
cmd /c包一层:"cmd": ["cmd", "/c", "powershell.exe -ExecutionPolicy Bypass -NoProfile -File "$file" & pause"],注意双引号转义 - 别忽略
"working_dir": "$file_path",否则脚本里用相对路径读写文件会失败
真正容易被忽略的点是:file_regex。不配它,PowerShell 报错时显示的 At line:5 char:12 就没法点击跳转到对应行——你得自己数行号。推荐用这个正则:"file_regex": "^.*?\((\d+),(\d+)\)\s+(.*)$",它能匹配 PowerShell 标准错误格式。另外,中文输出乱码不是脚本问题,而是构建系统里没设 "encoding": "utf-8"(别用 cp936,PowerShell 默认 UTF-16,Sublime 会自动处理)。这些细节不调,写一百行也没法高效调试。

















