PowerShellの.PS1ファイルをバッチファイル化する。(その2)
(その1)では、引数が渡りません。そこで、引数を、環境変数経由で渡します。
.PS1ファイルの先頭に3行、末尾に空行を加えて、拡張子を.CMDに変えます。
@SET args=%* & MORE +1 %0 | powershell.exe -command - & GOTO:EOF
function getargs {$xargs=$args}
iex ". getargs $env:args"
$xargs.gettype()
$xargs.length
foreach($arg in $xargs){$arg}
(空行)
この例では、環境変数argsを$xargsに取り出します。
元のスクリプトは、$argsの代わりに$xargsを参照するように変えます。
或いは、元のスクリプトを関数に括って呼び出せば、引数を$argsのまま参照できます。
.PS1ファイルの先頭に2行、末尾に2行を加えて、拡張子を.CMDに変えます。
@SET args=%* & MORE +1 %0 | powershell.exe -command - & GOTO:EOF
function main {
$args.gettype()
$args.length
foreach($arg in $args){$arg}
} iex "main $env:args"
(空行)
« PowerShellの.PS1ファイルをバッチファイル化する。(その1) | トップページ | PowerShellでソースファイルをインクルードする。 »