PowerShell 5.1 脚本里的中文路径变成乱码,存成带 BOM 的 UTF-8 解决
Node 写出的 .ps1 默认是不带 BOM 的 UTF-8,Windows PowerShell 5.1 会按系统 ANSI 代码页(中文系统为 GBK)读取:中文路径失效,有的中文字符串还会吞掉结束引号。脚本开头写入 BOM 即可;Start-Process 起不来时还要主动以非零退出。
这个主题下共有 2 篇文章。
Node 写出的 .ps1 默认是不带 BOM 的 UTF-8,Windows PowerShell 5.1 会按系统 ANSI 代码页(中文系统为 GBK)读取:中文路径失效,有的中文字符串还会吞掉结束引号。脚本开头写入 BOM 即可;Start-Process 起不来时还要主动以非零退出。
Get-ScheduledTaskInfo 返回的 LastTaskResult 是无符号 32 位数,0x800710E0 这类失败码超过 Int32 上限,转成 [int] 会让整个查询报错。改用 [long] 读取、按十六进制显示;同一结果在 COM 接口里是负数,比较前要先统一。