上层管道中的变量不可访问

时间:2018-07-18 04:23:22

标签: powershell

变量$ Comp在管道export-csv中不可访问。输出的excel文件名变为''_Users.csv

get-content "Servers.txt" | foreach-object {
   $Comp = $_
   if (test-connection -computername $Comp -count 1 -quiet)
   {
   } Else 
   {
       Write-Warning "Server '$Comp' is Unreachable hence Could not fetch data"
   }
}|Export-Csv -NoTypeInformation "'$Comp'_Users.csv"

1 个答案:

答案 0 :(得分:1)

除了脚本块参数外,在管道处理开始之前,一次绑定命令行参数

因此,在您传递给$Comp的脚本块为 之前,将"'$Comp'_Users.csv"自变量"$Comp_Users.csv"(我假设您是指ForEach-Object)展开为曾经打电话过。

  • 此时,如果从未初始化过$null,它的计算结果为$Comp-症状如显示的那样,它变成了可扩展字符串中的空字符串,或者使用任何预先存在的$Comp值。

要为每个输入对象(文件Servers.txt中的行)导出到一个不同的文件,您必须Export-Csv调用移至ForEach-Object脚本中封锁