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)
}
のでbasicly私は、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