私はPowershellを初めて使用しています。Powershell:インポートされたハッシュテーブルを検索できません
のは、私は次の情報をハッシュテーブルを作成したとしましょう:
$hash= @{
California = 'Sacramento';
Washington = 'Olympia';
Oregon = 'Salem';
Alaska = 'Juneau';
}
$hash
は今、私は-matchステートメントを使用して特定のキーを検索したい:
$result = @($layers.getEnumerator() | ? {$_.key -match 'Cal'})
$result
これは、と返します鍵はカリフォルニア、価値はサクラメント。すべてが必要なように働いています。
さて、代わりにテーブルのためのキーと値を入力すると、の私は、CSVファイルを使用してハッシュテーブルにインポートしたいとしましょう:ここ
California,Sacramento
Washington,Olympia
Oregon,Salem
Alaska,Junea
は、私はCSVをインポートするために作成された私のコードです
Import-Csv C:\Users\hgordon\Desktop\Maps_to_search\junk.csv -Header "Key","Value"
$layers = @{}
Foreach ($key in $keys) {
$layers[$key] = $csv
}
私の問題は、上記の検索文を実行すると何も返されないということです。
インポートされたハッシュテーブルで検索が動作しないのはなぜですか? import文で変更する必要があるものはありますか?インポートされたハッシュテーブルと手動で入力されたハッシュテーブルとの違いは何ですか?
ありがとうございます!
編集:
$t = Import-Csv -Path C:\Users\hgordon\Desktop\Maps_to_search\junk.csv -Header "Key","Value"
$HashTable = @{}
foreach($r in $t)
{
#Write-Host $r.column1 $r.column2
$HashTable[$r.Key] = $r.Value
}
$HashTable
が、私はまだかかわらず、私の検索スクリプトから何の結果を得ていない:それをより明確にするために、次のように私は私のインポートスクリプトを編集しました。仕事を得るために
'$ keys'と' $ csv'は何ですか? – 4c74356b41
'Import-Csv'はハッシュテーブルではない' PSCustomObject'型を返します。 – TheIncorrigible1
ファイルからレイヤーを作成するために使用したコードは何もしません。 'Import-Csv'の出力を使うだけで十分です。 –