当我已经定义了变量时出现意外的令牌错误

Unexpected token error when I have the variable already defined

简单的脚本,但无法弄清楚为什么会出现错误:它应该只将成功的机器写入一个文本文件,将失败的机器写入另一个文本文件。

这是我收到的错误:

表达式或语句中出现意外标记“$ip”。 + 类别信息:ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : UnexpectedToken

$computers = Get-Content C:\temp\machines_no_rdp.txt

foreach($computer in $computers)

 {


  if((New-Object System.Net.NetworkInformation.Ping).Send("$computer",[int]1000).Address.IPAddressToString)

   {

    $computer
   $ip = [System.Net.Dns]::GetHostByName($computer).AddressList.IPAddressToString



    $computer + ";" $ip | Out-File C:\temp\Success.txt -Append

   }

    else{$computer + ";" + "Dead" | Out-File C:\temp\failure.txt -Append}

   }

该错误试图告诉您它确实知道如何处理 $ip。此时它不关心它是否是一个变量。这是一个解析错误。

$computer + ";" $ip

应该改为以下内容(与您的编码习惯保持一致。)

$computer + ";" + $ip