将信息附加到a

问题描述 投票:0回答:1

一位前同事给了我这两个 PowerShell 脚本来运行、记录和监控连续 ping 测试:

运行并记录:

ping.exe -l 1500 -t W2K16svr|Foreach{"{0} - {1}" -f (Get-Date),$_} | out-file C:\Temp\PingTest.txt -Encoding UTF8

监控(在另一个PS实例中):

Get-content C:\Temp\PingTest.txt -tail 10 -wait

这很好用,但我需要检查使用笔记本电脑的用户经常需要切换到 WiFi,因此我需要输出来记录连接类型(以太网或 Wifi),以便我可以排除后者。

我发现我可以用这个来获取连接类型:

get-netconnectionprofile | select -ExpandProperty InterfaceAlias

…但我无法弄清楚如何将其附加到 ping 输出中。到目前为止我尝试过的所有方法都出错了。

是否可以做我想做的事,如果可以,如何做?

powershell foreach ping
1个回答
0
投票

您可以将信息包含在您已经通过

-f
格式运算符

)合成的字符串中
"{0} - {1} - {2}" -f (Get-Date), $_, [string] (Get-NetConnectionProfile).InterfaceAlias

注:

  • [string]
    转换确保即使碰巧有多个连接配置文件,也只返回一个单个字符串,利用PowerShell字符串化数组的方式,即通过空格连接它们的(字符串化)元素(例如,
    [string] @('foo', 'bar')
    变为
    'foo bar'
    ).

  • 不是通过管道传输到

    Select-Object -ExpandProperty
    ,而是通过Get-NetConnectionProfile
    中的外壳对(...)
    的输出执行
    直接属性访问
    。这更加简洁和高效,甚至可以与多个输出对象一起使用,这得益于PowerShell的成员访问枚举

© www.soinside.com 2019 - 2024. All rights reserved.