Se questo è esattamente come il vostro file appare cioè una lista di coppie chiave-valore indicato con una segno di uguale allora si dovrebbe avere uno sguardo a ConvertFrom-StringData
che
converte una stringa che contiene una o più coppie di chiavi e di valori in una tabella hash. Poiché ogni coppia chiave/valore deve essere su una riga separata, le stringhe qui vengono spesso utilizzate come formato di input.
Quindi, se un file di testo contiene solo i dati nel tuo esempio si potrebbe fare questo per creare una tabella hash
$Path = "C:\temp\test.txt"
$values = Get-Content $Path | Out-String | ConvertFrom-StringData
$values.midasServer
Qualora il $values.midasServer
avrebbe il valore di serv8194. Non c'è bisogno di sapere dove sono le proprietà rispetto al file. Il tuo file di input può anche avere uno spazio iniziale e finale variabile attorno al segno di uguale che darà lo stesso risultato.
A seconda del caso d'uso si può prendere che un passo più in là e creare un oggetto personalizzato da quella tabella hash
New-Object -TypeName pscustomobject -Property $values
Se si dispone di almeno PowerShell v3 o superiore è possibile semplificare il processo (supponendo che si desidera un personalizzato psobject)
$values = [pscustomobject](Get-Content $Path -Raw | ConvertFrom-StringData)
$values.midasServer
Questo funziona per me, ma io continuo a ricevere un errore che dice che nome non potrebbe essere creato, perché è una stringa vuota. Perché? – Pred