Powershell脚本错误处理CSV数据

时间:2013-12-20 18:12:42

标签: powershell csv gethostbyname

我正在编写一个脚本来从CSV文件加载计算机名称,然后查找其IP地址。

使用CSV中的名称时,脚本会产生错误。

如果我在ISE中运行脚本,则会显示错误,但结果仍然存在。如果我从powershell运行脚本,则会出错,结果为null。

如果我用$PCname = $_.System代替$PCname = "Computer01",一切正常。

如果我写主持人$_.System,则显示"Computer01"。我怎样才能在PowerShell中使用它?

$file = "\\server.contoso.net\private$\Systems.csv";
$CSV = Import-CSV $file;

$CSV | %{
    if ($_.Skip -eq 0)
    {
        $PCname = $_.System
       # $PCname = "Computer01"
        write-host $PCname
        try
        { 
            $ipaddress = [System.Net.Dns]::GetHostByName($PCname).AddressList[0].IpAddressToString
        }
        Catch [system.exception]
        { 
            if(1)
            { $error[0].tostring() }
        }
    }
}

显示的错误是:

  

使用“1”参数调用“GetHostByName”的异常:“请求的名称有效,但未找到所请求类型的数据”

1 个答案:

答案 0 :(得分:0)

原来,CSV中的值在某些时候后面添加了空格,这导致名称查找错误。我不确定为什么ISE仍然可以查找主机,但删除空格可以解决问题。

感谢sha,他的建议帮助我看到了空白。