【发布时间】:2016-03-22 02:18:45
【问题描述】:
我正在尝试使用两个 csv 的比较将数据输入到一个 csv 中。数据是两个 csv 比较的结果。
例如:
CSV 1 说
Host,Type
Host1,Server
Host2,Switch
Host3,Hub
Host4,Router
CSV 2 说:
List of Types, Hosts
,Host1 random letters Host2
,random letters Host3 Host2
,Host4 Host3 Host2
输出应该是
List of Types,Hosts
server switch,Host1 random letters Host2
hub switch,random letters Host3 Host2
router hub switch,Host4 Host3 Host2
这就是我所拥有的:
我的问题似乎是比较部分
$CSV1 = Import-Csv "Pathname1.csv"
Foreach ($title in $CSV1)
{
$Hosts =$title."Hosts"
$Type=$title."Type"
}
$csv2 = Import-Csv "Pathname2.csv"
foreach($title in $CSV2)
{
$Typelist = $title."List of Types"
$Hostlist = $title."Hosts"
if ($Hostlist -contains $Hosts)
{
$title.'List of Types'= $Type
}
}
$csv2 | export-csv "export.csv"
除了原来的东西外,什么都没有输出。
【问题讨论】:
-
你得到什么样的输出?这通常可以提供有关问题性质的线索。
-
List of Types下没有显示任何内容。但是,如果我在没有IF声明的情况下执行$title.'List of Types'="This is blank"... 所有行都会显示This is blank -
为什么 $csv1 和 $csv2 导入的是同一个文件?另外,您的问题中 csv2 的内容是否准确地格式化了文件中的行和列(又名,无类型)?
-
我将文件名更改为不同的。我正在使用 2 个不同的 csv。我不确定我是否理解你的最后一个问题,但我的文件确实看起来像那样......所以它在主机名之间有随机字符串
-
如果你没有 ' ; ' 在每个函数声明的末尾,还是这个脚本由缩进驱动?
标签: csv powershell comparison-operators