解决powershell表达式或语句中包含意外的标记问题

引言

最近,在编写powershell脚本时,在vscode中已经调试好了;但实际执行却总是失败;而且还没任何日志;通过录像弹窗的方法发现是语法格式问题

表达式或语句中包含意外的标记

语句块或类型定义中缺少右“}”

这个问题是脚本的编码格式导致的

解决办法就是修改脚本编码

解决方案

解决问题最关键的一步是认识问题;

vscode中执行正常;而运行脚本报错如何才能知道问题在哪?

答案是:用powershell识别代码的方法打开代码

那就是PowerShell ISE

PowerShell ISE打开你的代码后就有明显的异常

比如我这里;

powershell_ise_unicode_error

就是中文的内容把字符串的引号给冲掉了;

因此,也有一个简单的方法;将代码中所有的中文换成英文;这样也不会有问题

操作步骤

查看编码

使用PowerShell ISE打开你的脚本文件;

在下方的控制台中输入

1
2
[console]::OutputEncoding
[console]::InputEncoding

即可看到本机默认编码格式

image-20251220005402908

修改脚本编码

通常可以使用vscode修改编码,我引用AI的操作步骤:

  1. 在 VS Code 中打开乱码的脚本。
  2. 查看窗口右下角的状态栏,通常会显示 UTF-8。
  3. 点击 UTF-8,在弹出的菜单中选择 “通过编码保存 (Save with Encoding)”
  4. 在列表里找到并选择 UTF-8 with BOM
  5. 保存文件。
  6. 再次用 PowerShell ISE 打开,乱码就消失了。

实测UTF-8 with BOMGB2312都能解决乱码问题

结语

代码乱码问题相信每个中国开发者都遇到过;终极解决方法就是换英文操作系统

我新的电脑就是这样干的,省去很多莫名其妙的问题;但也会导致编码格式 或者老的程序显示问题

参考资料


解决powershell表达式或语句中包含意外的标记问题
http://blog.wangshuai.app/2025-12-20-powershell-syntax-error/
作者
王帅
发布于
2025年12月20日
许可协议