C や他の言語と同様に、スクリプトを物理的に実行するときに script/.exe 引数に渡すことができます。例えば:
myScript.exe Hello 10 P
これにより、Hello、10、および P がプログラム自体の変数に渡されます。
これは Powershell で可能ですか? もしそうなら、それらの引数を特定の $variable にどのように与えますか
ありがとう!
C や他の言語と同様に、スクリプトを物理的に実行するときに script/.exe 引数に渡すことができます。例えば:
myScript.exe Hello 10 P
これにより、Hello、10、および P がプログラム自体の変数に渡されます。
これは Powershell で可能ですか? もしそうなら、それらの引数を特定の $variable にどのように与えますか
ありがとう!
次のように param ブロックを使用してスクリプトを定義します。
-- Start of script foo.ps1 --
param($msg, $num, $char)
"You passed in $msg, $num and $char"
さらに修飾パラメーターを入力することもできます。
-- Start of script foo2.ps1 --
param([string]$msg, [int]$num, [char]$char)
"You passed in $msg, $num and $char"
デフォルト値と必要な値を指定することもできます。
-- Start of script foo3.ps1 --
param([string]$msg=$(throw "Msg param is required"), [int]$num, [char]$char="P")
"You passed in $msg, $num and $char"
高度な機能 (属性を指定してパラメーターを検証するなど) を使用すると、さらに手の込んだものにすることができます。しかし、これでうまくいくはずです。
@Keith Hillの回答を補完するだけです...
「C」について話しているように、自動変数 $args
を使用してパラメーターを使用してスクリプトを作成することもできます。
$Args
関数、スクリプト、またはスクリプト ブロックに渡される宣言されていないパラメーターやパラメーター値の配列が含まれます。
-- Start of script foo3.ps1 --
if ($args.length -gt 0)
{
write-host "first param is $($args[0])"
}
for ($i=0 ; $i -lt $args.length ; $i++)
{
write-host "$i) " $args[$i]
}
スクリプトを呼び出すことができます
.\foo3.ps1 coucou bonjour "hello world"
first param is coucou
0) coucou
1) bonjour
2) hello world