概要
秀丸マクロから呼び出すhmPSの関数(API)は多くありません。
ほとんどの場合は、「DoString」だけを使うこととなるでしょう。
PowerShellファイルを別ファイルにした場合には、「DoFile」を使うことになるハズです。
-
命令の実行:
└ DoString(szexpression)
文字列「szexpression」をPowerShellの命令として実行します。
何らかの明確な内部エラーがあった場合は0が、とりあえず実行できた場合は1が返ってきます。
-
1つのマクロ内で「DoString」は複数回実行可能、変数空間も同じ
#PS = loaddll( hidemarudir + @"\hmPS.dll" );
#_ = dllfuncw( #PS, "DoString", R"PS(
$aaa = "あいうお";
function mysum($a, $b) {
return $a + $b;
}
)PS"
);
#bbb = 123;
#_ = dllfuncw( #PS, "DoString", R"PS(
$bbb = $hm::Macro::Var['#bbb'];
$ccc = $aaa + "続いている"; # 別のDoStringでも、aaa は引き続き利用できる。
$hm::Macro::Var['$ddd'] = $ccc;
$result = mysum 1 2
$hm::debuginfo( $result ); # 別のDoStringで定義した関数も当然利用できる。
)PS"
);
message($ddd);
freedll( #PS );
-
命令の実行:
└ DoFile(filename)
ファイル名「filename」内の記述内容全体をDoString(...)の引数に渡したものとして実行します。
何らかの明確な内部エラーがあった場合は0が、とりあえず実行できた場合は1が返ってきます。
-
.psファイルの文字コードの変更など:
└ SetCodePage(codepage)
「.ps」ファイルは、「utf8(BOM無)」「utf8(BOM有)」「utf16(BOM有)」のいずれかが想定されています。
それ以外で取り扱いたい場合、「SetCodePage」関数を利用してください。
この関数は「読み込み対象のファイル」が、該当のコードで記述してある、 という指定となります。