I'm quite new to PS, so please don't kill me if the resolution is so easy :) I've tried to find a solution here and in google, but no luck.
This is part of code which don't work as I want
$Contents = Get-Content "Path\test.txt"
foreach($Line in $Contents) {
$Line = $Line.split(":")[1]
$s = $line -split ':'
$RegPath = $s[0]
$Value_Name = $s[1]
$Type = $s[2]
$Value = $s[3]
Write-host $RegPath $Value_Name $Type $Value
}
The output from Write-Host
is ok, but the main problem is when I want to use those variables after end of foreach
loop. If I call any variable after foreach
, for example Write-Host $Value_Name
it is just empty.
I need to use those variables $RegPath, $Value_Name, $Type, $Value
in later code of script. I can't figure how to do it. I would appreciate any help/idea how to do it. Thank you in advance
EDIT: Added test.txt
Just some text to ignore :Software\Test
Just some text to ignore :Test
Just some text to ignore :String
Just some text to ignore :Value
And the output from the first Write-Host in foreach is correct
Software/Test
Test
String
Value
And when I want to use for example just $Value_Name
, the output is empty after foreach
There is a misconception:
$Line
is split and returns a single item. $s[0..3] would only be populated if there were at least three colons in the same Line.$Contents = Get-Content "Path\test.txt"
$RegPath = $Contents[0].split(":")[1]
$Value_Name = $Contents[1].split(":")[1]
$Type = $Contents[2].split(":")[1]
$Value = $Contents[3].split(":")[1]
Write-host ("{0}|{1}|{2}|{3}" -f $RegPath,$Value_Name,$Type,$Value)
Sample output
Software\Test|Test|String|Value
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments