powershell函数输出到变量

tom*_*mmy 3 powershell powershell-2.0

我在powershell 2.0中有一个名为getip的函数,它获取远程系统的IP地址.

function getip {
$strComputer = "computername"

$colItems = GWMI -cl "Win32_NetworkAdapterConfiguration" -name "root\CimV2" -comp $strComputer -filter "IpEnabled = TRUE"



ForEach ($objItem in $colItems)

{Write-Host $objItem.IpAddress}

}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是将此函数的输出变为变量.下面的内容不起作用......

$ipaddress = (getip)
$ipaddress = getip
set-variable -name ipaddress -value (getip)
Run Code Online (Sandbox Code Playgroud)

任何有关这个问题的帮助将不胜感激.

Nat*_*hot 6

可能这会起作用吗?(如果使用Write-Host,将输出数据,不返回).

function getip {
    $strComputer = "computername"

    $colItems = GWMI -cl "Win32_NetworkAdapterConfiguration" -name "root\CimV2" -comp $strComputer -filter "IpEnabled = TRUE"

    ForEach ($objItem in $colItems) {
        $objItem.IpAddress
    }
}


$ipaddress = getip
Run Code Online (Sandbox Code Playgroud)

$ipaddress 然后将包含一个字符串IP地址数组.

  • 更具体地说,Write-Host将数据直接发送到进程的控制台主机或stdout.写输出或不捕获输出(如在Nate的示例中)将输出发送到当前管道或功能的"stdout".这与批处理文件中的"echo"大致相同. (2认同)