标题: [日期时间] 求助批处理文件日期时间比较问题 [打印本页]
作者: cwayne 时间: 2023-5-12 18:08 标题: 求助批处理文件日期时间比较问题
在batch脚本中拿到了两个日期时间 格式都是YYYY/MM/DD HH:MM:SS形式的
比如:
date1=2023/05/12 10:00
date2=2022/06/27 18:00
有什么方法可以简便的比较日期时间先后吗?比如调用powershell的方法也可以
btw:因为这种日期时间格式是用%%~ti获取的文件时间,没有精确到秒数,有什么精确到秒数的方法吗?
作者: jyswjjgdwtdtj 时间: 2023-5-12 21:33
有些文不对题
如果要获取系统时间 用mshta可以得到时间戳 精确到毫秒
文件修改时间如果只有到分 那你是无论如何也获取不到秒的
作者: 77七 时间: 2023-5-13 03:05
- @echo off
- set "date1=2023/05/12 10:00"
- set "date2=2022/06/27 18:00"
- if "%date1%" gtr "%date2%" (
- echo "%date1%" gtr "%date2%"
- ) else (
- echo "%date1%" leq "%date2%"
- )
- pause
复制代码
这里的日期应该可以直接比较,你试一下
作者: cwayne 时间: 2023-5-15 10:49
回复 2# jyswjjgdwtdtj
没表达清,是两个问题,第一个问题是主楼的时间格式(如2023/05/15 10:47) 批处理能正确比较吗?第二个问题是现在通过for %%i in ...和set time = %%~ti 拿到了文件创建时间,格式是上面那样的且只精确到分钟,有没有获取精确到秒的文件创建时间方法?期待大佬指教
作者: cwayne 时间: 2023-5-15 10:50
回复 3# 77七
谢谢,当天的日期确实可以比较(日期一样只有小时分钟不同),不过不知道涉及到跨月份或跨年的能否正确比较成功,我在尝试中
作者: jyswjjgdwtdtj 时间: 2023-5-16 19:04
回复 4# cwayne
理论上来讲是有的
毕竟打开文件的“属性”里显示的就是到秒的
作者: jyswjjgdwtdtj 时间: 2023-5-16 19:07
- set shell=createobject("shell.application")
- set p=shell.namespace(17).parsename("文件位置 错误下一条语句会报错")
- msgbox p.modifydate
复制代码
vbs
应该对吧……
作者: 77七 时间: 2023-5-16 23:40
如果没有简单的办法,可以考虑下 第三方工具 http://bcn.bathome.net/tool/forfiles.exe ,这个是精确到秒的
- @echo off
- for /f tokens^=1-2*delims^=^" %%a in ('FORFILES /m *.txt /C "cmd /c echo @path@file@fdate @ftime"') do (
- echo %%a
- echo %%b
- echo %%c
- )
- pause
复制代码
作者: cwayne 时间: 2023-5-23 10:33
回复 8# 77七
目前没查询到有简单的办法,不管是获取精确到秒的时间还是时间戳,安装第三方工具不知道是否可行因为脚本是需要下发到其他电脑,可能这个工具也要下发
作者: 77七 时间: 2023-5-23 10:38
回复 9# cwayne
chatgpt- @echo off
- set "filename=path\to\your\file" REM 将“path\to\your\file”替换为您要查询的文件路径
-
- for /f "delims=" %%a in ('powershell -Command "(Get-Item '%filename%').LastWriteTime.ToString('yyyy-MM-dd HH:mm:ss')"') do set "last_modified_time=%%a"
- echo %last_modified_time%
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |