![](/img/trans.png)
[英]Powershell with XAML GUI does not read data until end of script
[英]Pass data to powershell script
我正在使用PowerShell腳本,該腳本需要從文件中獲取數據並將它們用作寫入其中的函數的參數。 因此,基本上我正在尋找的是JSON或XML文件之類的東西,但是我不確定該使用什么。
我正在尋找的是一種相對易於使用的方法,它傳遞數據類型或對象而不是字符串。
一部分數據在XML中看起來像這樣:
<RegistryEntriesList>
<registryPath>HKLM:\\Software\\Lenovo\\Configuration\\</registryPath> <registryProperty>PATH </registryProperty>
<registryPath>HKLM:\\Software\\Lenovo\\Configuration\\</registryPath> <registryProperty>LOGS </registryProperty>
<registryPath>HKLM:\\Software\\Lenovo\\Connections\\</registryPath> <registryProperty>MinConnectionsPerTarget</registryProperty>
<registryPath>HKLM:\\Software\\Lenovo\\Connections\\</registryPath> <registryProperty>MaxWorkingIscsiConnections</registryProperty>
<registryPath>HKLM:\\Software\\Lenovo\\Connections\\</registryPath> <registryProperty>WaitIntervalInMilliseconds</registryProperty>
另一部分在JSON中會這樣:
"entredInput":[{"title":"Powershell","desc":"first"},
{"title":"json","desc":"third"},
{"title":"Configfile","desc":"second"}]
還有更多類似的東西。
基本上,我會將這些用於自動化目的。 我知道PowerShell4.0本身具有cmdlet ConvertFrom-JSON,但它在PS2.0上也可以正常工作,我希望我的腳本可以在任何版本的PowerShell(即Windows的任何版本)上運行。 因此,我想XML可能是一個更好的選擇,但我不確定。 還有其他選擇嗎?
我瀏覽了許多有關JSON和XML的Web鏈接,它們只是讓我很困惑。 請允許我在JSON,XML和SOMETHINGELSE中選擇一個更好的選項。 感謝您解決問題。
對於PowerShell 2.0,您可能要使用XML。 對於任何支持JSON的東西,我都會使用它:通常更輕巧。
替代方法是將psd1文件與Import-LocalizedData
cmdlet一起使用。 假設您在當前文件夾中創建文件“ Data.psd1”,如下所示:
@{
RegistryEntriesList = @(
@{
registryPath = 'HKLM:\Software\Lenovo\Configuration\'
registryProperty = 'PATH'
},
@{
registryPath = 'HKLM:\Software\Lenovo\Configuration\'
registryProperty = 'LOGS'
}
)
}
如您所見,它是帶有單鍵RegistryEntriesList的哈希表。 它的值是可用於散列的哈希表的集合。 您可以導入此數據並將其傳遞給命令,如下所示:
# Our test command...
function New-RegistryEntry {
param (
[string]$RegistryProperty,
[string]$RegistryPath
)
"Got RegistryPath: $RegistryPath and RegistryProperty: $RegistryProperty"
}
Import-LocalizedData -BindingVariable Params -BaseDirectory . -FileName Data.psd1
foreach ($item in $Params.RegistryEntriesList) {
New-RegistryEntry @item
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.