【发布时间】:2018-05-15 23:20:48
【问题描述】:
我正在尝试编写一个脚本来提取 2 个变量“代码”和“描述”并将它们写入此模板。
<CodeDescriptions>
<CodeDescription>
<Code>*code*</Code>
<Description>*description*</Description>
</CodeDescription>
</CodeDescriptions>
对于它找到的每组变量,它都会编写模板并插入变量。
我的 CSV 文件如下所示
code,description
0001,first
0002,second
0003,third
到目前为止我的代码:
$DB = Import-Csv $PSScriptRoot\Variables.csv
Set-Content $PSScriptRoot\file.txt
foreach ($Entry in $DB) {
$First = $Entry.First
$Second = $Entry.Second
# Echo values to verify result (test purposes only)
Write-Host $First
Write-Host $Second
# Write template to file
$var=
"<CodeDescriptions>
<CodeDescription>
<Code>*code*</Code>
<Description>*description*</Description>
</CodeDescription>
</CodeDescriptions>"
Add-Content $PSScriptRoot\file.txt $var
# replace inserts with correct variables
}
正如我所说,我仍然熟悉代码,我的目标是一次从 1 行中提取 2 个变量。然后将模板写入具有正确变量的文件并循环,直到输入所有变量。
成品应该是这样的
<CodeDescriptions>
<CodeDescription>
<Code>0001</Code>
<Description>first</Description>
</CodeDescription>
</CodeDescriptions>
<CodeDescriptions>
<CodeDescription>
<Code>0002</Code>
<Description>second</Description>
</CodeDescription>
</CodeDescriptions>
<CodeDescriptions>
<CodeDescription>
<Code>0003</Code>
<Description>third</Description>
</CodeDescription>
</CodeDescriptions>
【问题讨论】:
-
所以你有从 csv 中提取的变量然后你想将它们打印为 xml?请编辑您的答案以使其更清晰
-
为什么要为 2 个变量(
$First和$Second)分配相同的值 ($Entry),为什么要为此使用子表达式 ($())?您的 CSV 的结构是什么?您在哪里阅读 XML(我想那是您的模板)? -
我已更新以在描述中添加更多内容。将尝试正确更新代码
标签: powershell csv export