我的PowerShell脚本如下,我使用Export-Csv
命令将场中的所有站点保存为CSV文件。
$farmList = Import-Csv "TestFarm.csv"
$farmList1 = Import-Csv "OtherFarm1.csv"
foreach ($site in $farmList)
{
Write-Host "db - ", $site
foreach ($farmsite in $farmList1)
{
if ($site -eq $farmsite) {
Write-Host "matching site found for ", $farmsite
break
}
Write-Host "farm - ", $farmsite
}
}
我在CSV中的Excel文件看起来像
Site /sites/TestSite /sites/testsite1234 ...
CSV中的第二个Excel文件类似于
Site /sites/TestSite /sites/testsite1234 ...
当我调试程序时,我得到的值为$site
和$farmSite
@{Site=/sites/TestSite}
,但是当我使用-eq
比较值时,值不匹配。
我也试过使用Compare-Object
但没有成功。
答案 0 :(得分:1)
您需要比较对象' Site
属性而不是对象本身。
改变这个:
if ($site -eq $farmsite) {
进入这个:
if ($site.Site -eq $farmsite.Site) {
如果文件只包含这一个属性,您也可以在导入时展开它:
$farmList = Import-Csv "TestFarm.csv" | Select-Object -Expand Site
$farmList1 = Import-Csv "OtherFarm1.csv" | Select-Object -Expand Site
后者还允许您使用-contains
检查来简化代码:
foreach ($farmsite in $farmList1) {
if ($farmList -contains $farmsite) {
Write-Host "matching site found for $farmsite"
}
}