我正在尝试以相对简洁的方式完成以下代码部分(以插入更大的脚本)。以这种方式发送多个命令我没有任何问题。但是,有些东西会导致多行命令最终阻塞。Cisco 命令的语法似乎是正确的。我不确定我是否遇到了某种字符限制,或者我是否需要转义 中的特定字符$showintstatusCommands
,但我尝试的任何方法似乎都不起作用。
这段代码:
$BGPInterface = "GigabitEthernet0/2"
$showintstatusCommands = "`nterminal length 0`nsho int $BGPInterface | include reliability|errors`nsho log | include $Date.*LINK-3-UPDOWN.*$BGPInterface`nexit"
($Response = $showintstatusCommands | C:\Windows\plink.exe -ssh -2 -l $Credential.GetNetworkCredential().username -pw $($Credential.GetNetworkCredential().password) $DeviceName -batch) 2>$null | out-null
当我揭示变量的内容时,会产生以下内容。$ShowIntstatusCommands
当它在本地回显时似乎是正确的。请注意,第 3 行的结尾被切断(末尾缺少数字 2 字符)。此外,下一行是上一行的一些奇怪的残差,它以 . 开头$nclude
。
PS C:\Users\MKANET\Desktop\test> $Response
CISCO-ROUTER#
CISCO-ROUTER#terminal length 0
CISCO-ROUTER#sho int GigabitEthernet0/2 | include reliability|errors
reliability 255/255, txload 1/255, rxload 1/255
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 output errors, 0 collisions, 3 interface resets
CISCO-ROUTER#sho log | include Jul 17.*LINK-3-UPDOWN.*GigabitEthernet0/
$nclude Jul 17.*LINK-3-UPDOWN.*GigabitEthernet0/2
CISCO-ROUTER#
CISCO-ROUTER#exit
PS C:\Users\MKANET\Desktop\test> $showintstatusCommands
terminal length 0
sho int GigabitEthernet0/2 | include reliability|errors
sho log | include Jul 17.*LINK-3-UPDOWN.*GigabitEthernet0/2
exit