最終更新日 2026-05-01
utf8/utf16以外のPowerShellファイルを取り扱う
概要
hmPS/PowerShellは、「utf8(BOM有り)」「utf16(BOM有り)」
は、「DoFile」で自動的に判別して読み込むことが可能です。
また、BOMがないファイルをDoFileしようとした際には、デフォルトではutf8(BOM無し)とみなします。
それ以外の特別な文字コードの「.ps」を「DoFile」で読み込ませたい場合には、自動判別ができないため、
SetCodePage関数でコード番号を指定してください。
cp932(ShiftJIS)の.psファイル
BOMがないファイルをDoFileしようとした際には、デフォルトではutf8(BOM無し)とみなしますが、
SetCodePage関数によって、これを変更することができます。
#dll = loaddll( hidemarudir + @"\hmPS.dll" ); #r = dllfuncw( #dll, "SetCodePage", 932 ); // BOMが無いファイルをDoFileしたら、cp932(sjis)とみなす。BOMがあるファイルはBOM情報に従う。 #r = dllfuncw( #dll, "DoFile", currentmacrodirectory + "\\test.ps" ) freedll(#dll);
注意点としては以下の2つとなります。
-
文字コードの明示的な指定
#r = dllfuncw( #dll, "SetCodePage", 932 ); // cp932(sjis)
BOMがないファイルをDoFileしたら、cp932(sjis)とみなして読み込むことを明示します。
BOMがあるファイルであれば、932と指定していたとしても、ちゃんとBOM情報にしたがって読み込みます。