我编写了一个 Powershell 脚本,该脚本使用 psftp.exe 从多个交换机备份配置文件。改编自此处的 psftp 循环的内容如下:
# set up array of psftp commands to run on each switch
$cmd = @("get $config_file_on_switch $local_filename","quit")
#
# pipe those commands to a psftp call
$cmd | & $path_to_PSFTP -l $user -pw $password $IP_addr_of_switch
#
# this is all I'd really like to see on the Powershell console:
Write-Host $name_of_switch
这很好用——上面的代码在一个循环中,它遍历一个 CSV 列表的交换机 IP 地址,它在收集配置文件方面做了它应该做的事情。但我想抑制开关对 psftp 命令的响应。psftp.exe 没有禁用控制台输出的机制,并且尝试通过| Out-Null
在上面第二行代码的末尾添加来在 Powershell 中执行此操作不会抑制开关输出的显示。
我应该补充一点,这个问题发生在 Powershell CLI 窗口中,而不是在 Powershell ISE 控制台窗格中。
关于如何在这个脚本中屏蔽 psftp 的任何想法?