C言語や他の言語と同様に、スクリプトを物理的に実行するときに、スクリプト/ .exe引数を与えることができます。たとえば:Powershellスクリプトの起動時の引数
myScript.exe Hello 10 P
これによりこんにちは、10およびPは、プログラム自体にいくつかの変数に渡されます。
これはPowershellで可能ですか?もしそうなら、与えられた$変数にこれらの引数を与える方法
ありがとう!
C言語や他の言語と同様に、スクリプトを物理的に実行するときに、スクリプト/ .exe引数を与えることができます。たとえば:Powershellスクリプトの起動時の引数
myScript.exe Hello 10 P
これによりこんにちは、10およびPは、プログラム自体にいくつかの変数に渡されます。
これはPowershellで可能ですか?もしそうなら、与えられた$変数にこれらの引数を与える方法
ありがとう!
ので、同様の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ヒルの答えにだけ補足...
あなたは「C」についての話として、あなたもautomatic variable$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
THRスクリプトを呼び出すことができます