暂无图片
windows server 2008如何计算出日志文件最新修改时间和当前系统时间的差值
我来答
分享
且听风吟
2022-08-22
windows server 2008如何计算出日志文件最新修改时间和当前系统时间的差值
暂无图片 25M

需求说明:我想监控某个应用服务的最新日志和当前时间差多少分钟,请问可以通过cmd命令实现吗。

OS版本:Windows Server 2008 R2


比如日志文件名称为server.log,我想在cmd里面计算出当前的时间减去server.log里面日志最新时间,可以实现吗?或者当前系统的最新时间减去server.log文件的修改日期也行。

最终想得出一个值,比如当前时间是12:30分,server.log的最新修改时间是12:02分钟,输出结果就是28。


server.log日志内容是这样的

(000001)2022/8/22 17:26:46 - server..............................

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
农夫三拳

2、写powershell脚本,c:\test.ps1 内容如下

[math]::truncate(((Get-Date) - (ls c:\1.bat).LastWriteTime).TotalMinutes)


文件路径有空格的话这样写

[math]::truncate(((Get-Date) - (ls "C:\a b\c d.txt").LastWriteTime).TotalMinutes)

暂无图片 评论
暂无图片 有用 2
暂无图片
农夫三拳

cmd只能计算十进制,计算时间的话需要逐级换算,遇到跨天跨月跨年更麻烦,windows2008的话,可以用powershell

举例:

1、计算c:\1.bat修改时间差

2、写powershell脚本,c:\test.ps1 内容如下

Write-host "上次修改距今:" ((Get-Date) - (ls c:\1.bat).LastWriteTime).Days "天" ((Get-Date) - (ls c:\1.bat).LastWriteTime).Hours "小时" ((Get-Date) - (ls c:\1.bat).LastWriteTime).Minutes "分钟"

3、XXX.bat

@echo off
powershell Set-ExecutionPolicy Unrestricted
powershell c:\test.ps1

4、执行XXX.bat


暂无图片 评论
暂无图片 有用 2
农夫三拳

需要全部换算成分钟的话就用((Get-Date) - (ls c:\1.bat).LastWriteTime).TotalMinutes

类似的

TotalDays全部换算成天
TotalHours全部换算成小时
TotalMinutes全部换算成分钟
TotalSeconds全部换算成秒
TotalMilliseconds全部换算成毫秒

暂无图片 评论
暂无图片 有用 2
且听风吟

我的需求结果是得到一个时间差,比如当前时间是12:30分,server.log的最新修改时间是12:02分钟,输出结果就是28。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏