私はその後、私は$ I変数の値から変数の値を呼び出す
の入力基準値から$トムと呼ばれる変数の値を呼び出したい./name -i tom
PowerShellでスクリプトを実行します。
$tom = 29
$andrew = 99
$bill = 5
Echo $i's age is $i
これは印刷になります。PowerShellで
toms age is 29
私はその後、私は$ I変数の値から変数の値を呼び出す
の入力基準値から$トムと呼ばれる変数の値を呼び出したい./name -i tom
PowerShellでスクリプトを実行します。
$tom = 29
$andrew = 99
$bill = 5
Echo $i's age is $i
これは印刷になります。PowerShellで
toms age is 29
を、これは次のようになります。のの内容:
$person = $args
$ages = @{"Tom" = 23;
"Andrew" = 99;
"Bill" = 5}
$age = $ages[$person]
Write-Host "$person's age is $age"
そして、あなたはこの
.\name.ps1 "tom"
$args
のようにそれを呼び出すと、スクリプトに送信するすべての引数が含まれています。あなたはこのようなスクリプトを呼び出すのであれば:.\name.ps1 "tom" "bill"
を、あなたの結果は次のようになります。tom bill's age is 23 5
私はハッシュテーブルを使用していますが、グローバル変数を持っている場合は、あなたが使用することができます以下
#variables
$tom = 29
$andrew = 99
$bill = 5
#your parameter
$i = "tom"
#echo
Echo "$i's age is $((Get-Variable | ? {$_.Name -eq $i}).Value)"
という配列があります – Rustle
ものに別のアプローチ提供されます。間違いなく、余計なコードがありますが、私はPowerShellのparamの機能を手に入れることをお勧めします。
# PowerShell's native argument/parameter support
param(
[string]$name
)
# Create an array with Name and Age properties as hashtable.
$people = @(
@{ Name = "Tom" ; Age = 29},
@{ Name = "Andrew" ; Age = 99},
@{ Name = "Bill" ; Age = 5}
)
# Find the person by comparing the argument to what is in your array
$person = $people | Where-Object {$_.Name -eq $name}
# Single name version: If the person is found, print what you would like. Otherwise let the user know name not found
if($person -ne $null){
Write-Host "$($person.Name) is $($person.Age) years old"
}else{
Write-Host "$name not found in list."
}
<# Multiple name version : get rid of the param section
foreach ($name in $args){
$person = $people | Where-Object {$_.Name -eq $name}
if($person -ne $null){
Write-Host "$($person.Name) is $($person.Age) years old"
}else{
Write-Host "$name not found in list."
}
}
#>
から値を拾いに固有の$ argsをである。\ name.ps1「トム」 – Rustle
'$のargs'はあなたとスクリプト/関数を呼び出したパラメータのための特別な値です。 '。\ name.ps1" tom "'のように呼び出すと、 '$ args'に' 'tom" 'が含まれます。 複数の値 '。\ name.ps1" tom "jerry"で呼び出す場合、 '$ args'には' 'tom" 'と' 'jerry" ' –