【发布时间】:2017-07-21 07:03:57
【问题描述】:
我正在 vCloud Director 环境中为 VMware DR 创建一个脚本。我有几个脚本可以生成不同的 csv 文件,其中包含我的整个环境。我正在尝试导入较大的全包 CSV 文件之一以创建一个 csv 导出文件,该文件仅包含与特定客户端 VM 的名称列中的三个字母代码和 VMXPath 中列出的每个数据存储上的三个字母代码匹配的行标识存储是否被复制的列。
脚本导出目标: 匹配名称列中的 ABC 并匹配 VMXPath 列中的 NLR 或 S4R。
示例: 对于下面的示例,我删除了 CSV 文件中的所有其他列,因为它们有很多,留下我试图根据我的脚本标准排序/导出的两列。这是 csv 中包含的列标题和示例数据的示例。
"Name","VMXPath"
"ABC04W09A001 (74342f44-cd05-490e-87bc-3803e8656b33)","[NLR_ABC_DST_505] ABC04W09A001 (74342f44-cd05-490e-87bc-3803e8656b33)/ABC04W09A001 (74342f44-cd05-490e-87bc-3803e8656b33).vmx"
这是我正在使用的脚本代码,它无法生成正确的导出文件。我可以让它与客户端 ABC 匹配,但即使我将命令剥离为仅尝试基于 VMXPath 标准导出,它仍然会失败。
$drinventory = Import-Csv C:\reports\dr\co_prod_all_inventory.csv
$abcinventory | where {($_.Name -match “abc”) -and ($_.VMXPath -match "NLR" -or "S4R")} | Export-Csv C:\reports\dr\abc_dr.csv -NoTypeInformation
我不确定根本原因可能是什么。我觉得它可能与 [ ] 有关,因为我认为这就是数组包含的内容?我对powershell有点陌生,基本上可以从这个站点/谷歌拼凑起来。
非常感谢您提供的任何帮助,并提前非常感谢您。
ps。如果这没有正确格式化以符合本网站的标准,我深表歉意。我是新来的,我知道 VM 名称/VMXPath 信息有点长...
【问题讨论】:
-
“abc”- 这些不是标准的 ASCII 双引号。
标签: powershell csv import export