将几个输出合并到一个表中

时间:2019-02-18 11:42:33

标签: windows powershell powershell-v4.0

使用Powershell,我试图将三个命令的结果放入表中并将其输出到文件中,然后永远重复该命令。我无法弄清楚如何正确格式化表格。

这是我的剧本

while (1){

    $ping = test-connection 8.8.8.8 -delay 1 -count 1
    $wifi = @{n='Status';e={get-netadapter -physical -name Wi-Fi | select Status}}
    $timestamp = @{n='TimeStamp';e={Get-Date}}

    $ping | format-table __SERVER, Address, ResponseTime, $timestamp, $wifi | out-file "C:\test-connection.txt" -append
    start-sleep -s 10
}

$ ping获得8.8.8.8的ping结果

$ wifi获取wi-fi适配器的状态

$ timestamp获取当前时间

最终输出应如下所示:

__SERVER  Address ResponseTime TimeStamp           Status      
--------  ------- ------------ ---------           ------      
Hostname  8.8.8.8           19 18/02/2019 10:19:23 Up
Hostname  8.8.8.8           19 18/02/2019 10:19:23 Up
Hostname  8.8.8.8           19 18/02/2019 10:19:23 Up
Hostname  8.8.8.8           19 18/02/2019 10:19:23 Up
...

但是,使用我当前的设置,它可以做到:

__SERVER  Address ResponseTime TimeStamp           Status      
--------  ------- ------------ ---------           ------      
Hostname  8.8.8.8           20 18/02/2019 10:19:13 @{Status=Up}



__SERVER  Address ResponseTime TimeStamp           Status      
--------  ------- ------------ ---------           ------      
Hostname  8.8.8.8           19 18/02/2019 10:19:23 @{Status=Up}



__SERVER  Address ResponseTime TimeStamp           Status      
--------  ------- ------------ ---------           ------      
Hostname  8.8.8.8           20 18/02/2019 10:19:33 @{Status=Up}

感谢您的协助。

1 个答案:

答案 0 :(得分:2)

在随后的写操作中,您将不得不隐藏表头,并修剪输出。

尝试一下:

while (1) {
    $ping = test-connection 8.8.8.8 -delay 1 -count 1
    $wifi = @{n='Status';e={get-netadapter -physical -name Wi-Fi | select -expand Status}}
    $timestamp = @{n='TimeStamp';e={Get-Date}}
    $path = "C:\test-connection.txt"
    $ping | ft __SERVER, Address, ResponseTime, $timestamp, $wifi -Hide:(Test-Path $path) | out-string | % {$_.trim()} | out-file $path -append
    start-sleep -s 10
}

使用Format-Table进行文件输出并不是一个好主意,而是要在控制台中显示。考虑使用CSV或自定义格式。