Powershell retrieving a variable from a text file

前端 未结 3 1124
渐次进展
渐次进展 2021-02-01 05:08

Is there a way to read a text file C:\\test.txt and retrieve a particular value?

ie file looks like this:

serverName=serv8496
midasServer=serv8194
         


        
3条回答
  •  花落未央
    2021-02-01 05:58

    If that is exactly how your file appears i.e. a list of key value pairs denoted with a equals sign then you should have a look at ConvertFrom-StringData which

    converts a string that contains one or more key and value pairs into a hash table. Because each key/value pair must be on a separate line, here-strings are often used as the input format.

    So if a text file contained just the data in your example you could do this to create a hashtable

    $Path = "C:\temp\test.txt"
    $values = Get-Content $Path | Out-String | ConvertFrom-StringData
    $values.midasServer
    

    Where the $values.midasServer would have the value serv8194. No need to know where the properties are in respect to the file. Your input file can also have varying leading and trailing space around the equals sign which will give the exact same result.

    Depending on your use case you can take that one step farther and create a custom object from that hashtable

    New-Object -TypeName pscustomobject -Property $values
    

    If you have at least PowerShell v3 or higher you can simplify the process (assuming you want a custom psobject)

    $values = [pscustomobject](Get-Content $Path -Raw | ConvertFrom-StringData)
    $values.midasServer
    

提交回复
热议问题