現象
※ https://codezine.jp/article/detail/2811?p=5
上記サイトの例を sample1.ps1 としてスクリプトに保存した。
このスクリプトを "./sample1.ps1" として実行すると文字化けが発生してエラーとなってしまう。
上記サイトの例を sample1.ps1 としてスクリプトに保存した。
このスクリプトを "./sample1.ps1" として実行すると文字化けが発生してエラーとなってしまう。
PS D:\TEMP\memo\powershell> ./sample1.ps1 発生場所 D:\TEMP\memo\powershell\sample1.ps1:3 文字:3 + "萓句、也匱逕・ + ~~~~~~~~ 文字列に終端記号 " がありません。 発生場所 D:\TEMP\memo\powershell\sample1.ps1:2 文字:1 + { + ~ ステートメント ブロックまたは型定義に終わりの '}' が存在しません。 + CategoryInfo : ParserError: (:) [], ParseException + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
原因と対処
PowerShellスクリプトファイルの文字コードは "UTF-8" ではなく "UTF-8 with BOM" である。
"UTF-8 with BOM" で保存したところ正常に動作した。
※ ↓ 以下サンプルは "0で徐算しようとしました"を発生させるスクリプトなのでエラーが発生して正解。
"UTF-8 with BOM" で保存したところ正常に動作した。
※ ↓ 以下サンプルは "0で徐算しようとしました"を発生させるスクリプトなのでエラーが発生して正解。
PS D:\TEMP\memo\powershell> ./sample1.ps1 例外発生 0 で除算しようとしました。 発生場所 D:\TEMP\memo\powershell\sample1.ps1:5 文字:1 + 1/$Null + ~~~~~~~ + CategoryInfo : NotSpecified: (:) [], RuntimeException + FullyQualifiedErrorId : RuntimeException
PowerShell
0 件のコメント:
コメントを投稿