如何在 Windows 命令行中为受监控的命令(如“netstat”)添加时间戳?

如何在 Windows 命令行中为受监控的命令(如“netstat”)添加时间戳?

使用netstat -aon | findstr /I "1234",我可以监视该端口是否开放,但是有一个问题:结果如下:

UDP    0.0.0.0:1234    *:*     5064
UDP    0.0.0.0:1234    *:*     5064
UDP    0.0.0.0:1234    *:*     5064
UDP    0.0.0.0:1234    *:*     5064

因此,每当我的程序(进度 ID 为 5064)无法打开该端口时,我都不知道这实际上何时发生。

因此,我想要类似这样的东西:

while true:
  netstat -aon | findstr /I "1234"
  time /T
end

(我已经检查过了netstat /?,但没有找到任何显示时间戳的开关。)

有人有想法吗?

(我正在使用 Windows Server 2019。)

答案1

好吧,在 PowerShell 中,您可以使用循环来真正地完成示例中的操作while

while ($true) {
    Get-Date
    netstat -asdfgh
    Start-Sleep 1
}

...话虽如此,我认为这是完全错误的方法。套接字侦听失败是可以检测到的——相应的函数将返回错误——因此,如果您的程序无法在服务器上侦听其配置的端口,它应该生成它有自己的日志消息说明它有问题。

这些日志消息将包含输出消息的时间和日期。(如果您可以将消息发送到 Windows 事件日志 - 或 Syslog 收集器 - 它通常会自动包含时间/日期。)

相关内容