【发布时间】:2015-11-01 01:30:23
【问题描述】:
在此脚本中使用 Where-Object(有点像本示例中的 Import-Csv How to export to "non-standard" CSV with Powershell)进行过滤时,我找不到将 Write-Host 替换为 Export-Csv 的语法:
$xml=[xml]@'
<?xml version="1.0" encoding="iso-8859-1"?>
<catalogue>
<produits>
<produit id="pdt1" libelle="produit 1" cat="PDT">
<metas date="2015.07.24">
<meta code="123456" value="123456"></meta>
<meta code="789012" value="ghijkl"></meta>
<meta code="345678" value="mnopqr"></meta>
</metas>
</produit>
<produit id="pdt2" libelle="produit 2" cat="PDT">
<metas date="2015.07.24">
<meta code="111111" value="abcdef"></meta>
<meta code="789012" value="ghijkl"></meta>
<meta code="345678" value="mnopqr"></meta>
</metas>
</produit>
<produit id="pdt3" libelle="produit 3" cat="PDT">
<metas date="2015.07.24">
<meta code="123456" value="123456"></meta>
<meta code="789012" value="ghijkl"></meta>
<meta code="345678" value="mnopqr"></meta>
</metas>
</produit>
</produits>
</catalogue>
'@
$out_csv = "C:\out.csv"
$meta_code = "123456"
$produit_code = "pdt1"
$produit=$xml.catalogue.produits.produit | where {$_.id –like "$produit_code"}
$xml.catalogue.produits.produit | where {$_.cat.startsWith("PDT")} | ForEach-Object {
$meta = $xml.SelectSingleNode("//catalogue/produits/produit[@id='$($_.id)']/metas/meta[@code='$meta_code']")
if($meta) {Write-Host "$($_.id),$($_.libelle)"}
}
更新:我真的想要与 Write-Host 相同的输出,即没有标题和这样的引号:
pdt1,产品 1
pdt3,产品 3
不是这样的
"id","libelle"
"pdt1","产品 1"
"pdt3","产品 3"
【问题讨论】:
标签: powershell