首先,我只是学习PowerShell,但我编写了许多脚本语言.
我正在编写一个脚本来检索远程服务器上的命令输出,然后检查输出是否为"running".现在它检索命令的输出,我把它放在我的变量中$data.问题是我通过我的"clean_data"函数,它与我传递给函数的变量中的内容不同.
我想知道的是,$data当打印到屏幕时,变量的输出在地球上是如何有一个内容的,但是当传递给一个函数并立即打印出一个新内容时?我错过了什么?
我只是想循环返回的行,看看有多少人在其中"运行"并打印出一个很好的错误,如果没有.
function clean_data($input) {
Write-Output "Received data"$input
Write-Output "Cleaning data"
$output=@()
foreach ($line in $input) {
Write-Output "Looking at: "$line.ToString()
if ($line.ToString().Contains("running")) {
$output+=$line
}
}
Write-Output $output
return ,$output
}
$data = Get-Job -id $jobid.id | Receive-Job
Write-output "Data Type: "$data.GetType().Fullname
Write-Output "Output of $cmd"
Write-Output "============================================================"
Write-Output $data
Write-Output "============================================================"
clean_data $data
Write-Output $newdata
Remove-Job -Id $jobid.Id
Run Code Online (Sandbox Code Playgroud)
Data Type:
System.Object[]
Output of C:\opcragt.bat servername
============================================================
C:\Windows\system32>"D:\Program Files\HP\HP BTO Software\bin\win64\opcragt.cmd" …Run Code Online (Sandbox Code Playgroud)