はじめに
この記事は新人エンジニアが遭遇したトラブルと解決方法の覚書です
「何」をしたら「どうなった」のメモで、「何故」はほとんど書いておりません(わからないので)
起こったこと
作成したスクリプトを実行
→エラーが発生、失敗
コマンドを個別にコピペしてPowerShellに貼り付け実行
→エラーなし、成功
新しくファイルを作成して全文コピペし、スクリプトとして実行
→最初と同じ箇所にエラーが発生、失敗
遭遇したエラー
1. 式またはステートメントのトークンを使用できません
式またはステートメントのトークン '`r`n' を使用できません。
式またはステートメントのトークン 'yyyy/MM/dd/' を使用できません。
2. 文字列に終端記号がありません
文字列に終端記号 " がありません。
3. ステートメント ブロックまたは型定義に終わりが存在しません
ステートメント ブロックまたは型定義に終わりの '}' が存在しません。
確認したこと
・誤字脱字
・全角半角
・変なところに改行やスペースが入っていないか
→異常なし
解決法
文字コードをBOM付きのUTF-8に変更
→エラーが発生せずにスクリプトが正常終了
BOMとは
byte order mark:バイトオーダーマークの略
Unicodeで符号化したテキストの先頭に付与される数バイトのデータのこと
この先頭数バイトのデータで、プログラムはそのテキストデータがどの符号化形式を使っているのか判別する……らしい
なぜBOM付きに?
日本語が入っているとBOMなしは文字化けして認識されるらしい
特に日本語関係ない箇所だったし、ファイル内に日本語がないように作成しなおしても同じ状態だったんだけど……変えたら解決したからまあいいか