我試圖將Excel文件導入PowerShell,然後將其另存爲XML文件。我有一個Excel文件和一個XML模板。我所做的是在下面:格式化字符串時出錯:輸入字符串格式不正確
# define XML configuration template
$config = "C:\Users\mustafaal\Desktop\StajyerMustafaAl\Gorev\XMLTemplate_v2.ps1"
Import-Csv C:\Users\mustafaal\Desktop\StajyerMustafaAl\Gorev\VariablesDeneme.csv | ForEach-Object {
$xml = "C:\Users\mustafaal\Desktop\StajyerMustafaAl\Gorev\MySampleConfig" + $_.UserName + ".xml"
Write-Host $_.username
Write-Host $xml
[xml]$x = (&$config) -f $_.UserName, $_.SwitchIP, $_.SwitchPort, $_.MACAddress
$x.Save($xml)
}
所以基本上我試圖保存在Excel文件中的每個用戶名的XML文件。
我得到這個錯誤:
Error formatting a string: Input string was not in a correct format. At C:\Users\mustafaal\Desktop\StajyerMustafaAl\Gorev\deneme1.ps1:14 char:1 + [xml]$x = (&$config) -f $_.UserName, $_.SwitchIP, $_.SwitchPort, $_.MACAddress
XML模板樣本:
<AttributeList>
<RuleAttribute displayValue="Ethernet (15)" value="15" operator="EQUALS" name="NAS-Port-Type" type="Radius:IETF"/>
<RuleAttribute displayValue="Login-User (1), Framed-User (2), Authenticate-Only (8)" value="1,2,8" operator="BELONGS_TO" name="Service-Type" type="Radius:IETF"/>
<RuleAttribute displayValue={1} value={1} operator="EQUALS" name="NAS-IP-Address" type="Radius:IETF"/>
<RuleAttribute displayValue={2} value={2} operator="EQUALS" name="NAS-Port-Id" type="Radius:IETF"/>
<RuleAttribute displayValue={3} value={3} operator="EQUALS_IGNORE_CASE" name="Calling-Station-Id" type="Radius:IETF"/>
<RuleAttribute displayValue="TEIDOM\"{0} value="TEIDOM\"{0} operator="EQUALS_IGNORE_CASE" name="User-Name" type="Radius:IETF"/>
</AttributeList>
CSV樣本:
UserName,SwitchIP,SwitchPort,MACAddress AHMETO,10.101.254.104,7,288023041d83 ahmett,10.101.254.136,4,480fcf4a6719
基本上我需要在XML文件中,以取代{}
CSV文件中的變量,但我得到一個字符串格式錯誤。
編輯:好了,現在我已經發現了這個問題,也有與{}
其他代碼,我讓他們雙,但現在我有一個新的錯誤:
to type "System.Xml.XmlDocument". Error: "'ahmett' is an unexpected token. Expecting white space. Line 5, position 84.
'XMLTemplate_v2.ps1'的內容是什麼? '(&$ config)'執行該腳本,因此需要輸出一個用於'-f'的模板字符串來操作。 –
我加了一塊它 – alhn34