基本的にテキストファイルからテキストを読み込んで解釈し、「キー」と「値」をハッシュテーブルに格納するこのスクリプトを実行しようとしています。ここで、テキストファイルからテキストを読み取っているときに、特定のキーと値を変更したいと思います。
以下は私のファイルのテキストです:
line1 = apple
line2 = firetruck
line3 = cricket
line4 = gorilla
line5 = elephant
line6 = banana
line7 = jumper
line8 = hat
line9 = deer
line10 = igloo
これが私のコードです:
param
(
[Parameter(Mandatory=$true, HelpMessage="Please specify the text filename.")]$fileName
)
$hashTable = @{}
$textFile = Get-Content $filename | ForEach-Object `
{
$equalindex = $_.IndexOf("=")
$key = $_.Substring(0,$equalindex)
if($key -like "line2")
{
$key = "line2 has been changed"
}
$remainingLen = (($_.Length - 1) -$equalindex)
$value = $_.Substring($equalindex +1, $remainingLen)
if($value -like "value2")
{
$value = "value2 has been changed"
}
$hashtable.Add($key,$value)
}
$hashtable.Set_Item("line5","line5 value has been changed")
$hashtable.GetEnumerator() | Sort-Object name
コードを実行すると、ハッシュテーブルが出力されますが、「line2」キーまたは「value2」値は変更されません。これは、私が達成しようとしていることを実行するための正しい/最も論理的な方法ですか?