有沒有辦法讀取文本文件C:\ test.txt並檢索特定值?Powershell從文本文件中檢索變量
即文件看起來像這樣:
serverName=serv8496
midasServer=serv8194
我想設置一個變量的值在我的腳本從這個文件,例如某種方式:
$MidasServer= (from file midasServer value)
我不知道該線參考號碼。
任何方式來做到這一點?
有沒有辦法讀取文本文件C:\ test.txt並檢索特定值?Powershell從文本文件中檢索變量
即文件看起來像這樣:
serverName=serv8496
midasServer=serv8194
我想設置一個變量的值在我的腳本從這個文件,例如某種方式:
$MidasServer= (from file midasServer value)
我不知道該線參考號碼。
任何方式來做到這一點?
是的,讀文件,分割每行和分裂結果分配給Name和Value參數:
Get-Content file.txt | Foreach-Object{
$var = $_.Split('=')
New-Variable -Name $var[0] -Value $var[1]
}
如果這是你的文件究竟是如何出現即具有表示鍵值對的列表等號,那麼你應該看看ConvertFrom-StringData
其中
將包含一個或多個鍵和值對的字符串轉換爲散列表。由於每個鍵/值對必須位於不同的行上,因此這裏字符串通常用作輸入格式。
因此,如果一個文本文件,在你的例子只是所含的數據,你可以這樣做是爲了創建一個哈希表
$Path = "C:\temp\test.txt"
$values = Get-Content $Path | Out-String | ConvertFrom-StringData
$values.midasServer
凡$values.midasServer
將具有值serv8194。不需要知道屬性在文件中的位置。您的輸入文件也可以在等號周圍有不同的前後空格,這將得到完全相同的結果。
根據您的使用情況,你可以採取一步,並從該哈希表
New-Object -TypeName pscustomobject -Property $values
創建自定義對象如果你有至少PowerShell的V3或更高版本可以簡化過程(假設你想定製psobject)
$values = [pscustomobject](Get-Content $Path -Raw | ConvertFrom-StringData)
$values.midasServer
這對我有用,但我不斷收到一個錯誤,說該名稱無法創建,因爲它是一個空字符串。這是爲什麼? – Pred