我正在嘗試使用powershell和plink編寫腳本(基於一些Internet示例)執行一些telnet/ssh命令。但是我想實現的主要功能是將此命令的輸出捕獲到變量或文本文件中。我如何攔截特定命令的輸出?Powershell plink telnet命令輸出到var
例如:當我發送「get-status」命令時,它返回「Status is 01 02 03」。我可以將此字符串分配給var或文本文件嗎?也許,只有「01 02 03」沒有「狀態」文本?
$ps = New-Object -TypeName System.Diagnostics.Process
$ps.StartInfo.UseShellExecute = $false
$ps.StartInfo.RedirectStandardInput = $true
$ps.StartInfo.FileName = "plink"
$ps.StartInfo.Arguments = "-telnet XXX.XXX.XXX.XXX"
[void]$ps.Start()
$PlinkStreamWriter = $ps.StandardInput
Start-Sleep -m 500
$PlinkStreamWriter.Write("login`r")
Start-Sleep -m 500
$PlinkStreamWriter.Write("password`r")
Start-Sleep -m 500
$PlinkStreamWriter.Write("get-status")
Start-Sleep -m 500
Write-Host "Status string: " .....
$PlinkStreamWriter.Write("exit`r")
$PlinkStreamWriter.Close();
if (!$ps.HasExited) { $ps.Kill() }
謝謝,但是當我使用這段代碼($ result = $ PlinkStreamWriter.Write(「get-status」))時,我得到一個空的$ result var。 – Wind
好的,但那麼發送字符串「」狀態是01 02 03「'是什麼? –
對不起,你是什麼意思「它是什麼」?我不知道,但也許應該有一些像「$ PlinkStreamWriter.Write」爲$ ps.StandardInput或可能輸出命令?捕獲的plink流不能分配給結果值。我嘗試了一些不同的變體。感謝您的關注。哦,也許你知道一些其他的方式來獲得PowerShell腳本工作,沒有新窗口,並在隱藏模式下,但與plink telnet或ssh命令執行? – Wind