Powershell reading multiple variables from text file

Seba S

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

user6811411

There is a misconception:

  • while iterating the ForEach each $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.
  • Provided you want to assign the colon separated values of the first 4 lines to these variables, try this

$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.

edited at
0

Comments

0 comments
Login to comment

Related

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  3. 3

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  4. 4

    pump.io port in URL

  5. 5

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

  9. 9

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  10. 10

    How to remove the extra space from right in a webview?

  11. 11

    java.lang.NullPointerException: Cannot read the array length because "<local3>" is null

  12. 12

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  13. 13

    flutter: dropdown item programmatically unselect problem

  14. 14

    How to use merge windows unallocated space into Ubuntu using GParted?

  15. 15

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  16. 16

    Nuget add packages gives access denied errors

  17. 17

    Svchost high CPU from Microsoft.BingWeather app errors

  18. 18

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  19. 19

    12.04.3--- Dconf Editor won't show com>canonical>unity option

  20. 20

    Any way to remove trailing whitespace *FOR EDITED* lines in Eclipse [for Java]?

  21. 21

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

HotTag

Archive