解决powershell表达式或语句中包含意外的标记问题
引言
最近,在编写powershell脚本时,在vscode中已经调试好了;但实际执行却总是失败;而且还没任何日志;通过录像弹窗的方法发现是语法格式问题
表达式或语句中包含意外的标记
语句块或类型定义中缺少右“}”
这个问题是脚本的编码格式导致的
解决办法就是修改脚本编码
解决方案
解决问题最关键的一步是认识问题;
那vscode中执行正常;而运行脚本报错如何才能知道问题在哪?
答案是:用powershell识别代码的方法打开代码
那就是PowerShell ISE
用PowerShell ISE打开你的代码后就有明显的异常
比如我这里;

就是中文的内容把字符串的引号给冲掉了;
因此,也有一个简单的方法;将代码中所有的中文换成英文;这样也不会有问题
操作步骤
查看编码
使用PowerShell ISE打开你的脚本文件;
在下方的控制台中输入
1 | |
即可看到本机默认编码格式

修改脚本编码
通常可以使用vscode修改编码,我引用AI的操作步骤:
- 在 VS Code 中打开乱码的脚本。
- 查看窗口右下角的状态栏,通常会显示 UTF-8。
- 点击 UTF-8,在弹出的菜单中选择 “通过编码保存 (Save with Encoding)”。
- 在列表里找到并选择 UTF-8 with BOM。
- 保存文件。
- 再次用 PowerShell ISE 打开,乱码就消失了。
实测UTF-8 with BOM和GB2312都能解决乱码问题
结语
代码乱码问题相信每个中国开发者都遇到过;终极解决方法就是换英文操作系统
我新的电脑就是这样干的,省去很多莫名其妙的问题;但也会导致编码格式 或者老的程序显示问题
参考资料
解决powershell表达式或语句中包含意外的标记问题
http://blog.wangshuai.app/2025-12-20-powershell-syntax-error/