当前位置: 首页 > article >正文

bat 批处理获取日期、时间

在Windows批处理脚本编程中,获取当前日期和时间是一项常见且重要的操作。

1. 获取当前日期和时间的基本脚本

@echo off
for /F "tokens=2" %%i in ('date /t') do set mydate=%%i
set mytime=%time%
echo Current time is %mydate%:%mytime%

输出示例

Current time is 08/12/2015:22:57:24.62

2. 单独获取日期

使用date /t命令:
c:\>date /t
Thu 05/14/2015
使用环境变量:
c:\>echo %date%
Sun 05/17/2015
仅获取MM/DD/YYYY格式:
for /F "tokens=2" %i in ('date /t') do echo %i

输出

05/14/2015

3. 单独获取时间

使用time /t命令(12小时制):
c:\>time /t
11:17 PM
使用time命令(24小时制):
c:\>time
The current time is: 23:17:18.57
Enter the new time:
使用环境变量:
c:\>echo %time%
23:23:51.62

4. 同时获取日期和时间

c:\>echo %date%-%time%
Sun 05/17/2015-23:21:03.34

进阶技巧

1. 处理小时数小于10时的空格问题

echo %TIME: =0%

(冒号和等号之间有一个空格)这会用0替换空格。

2. 创建实时更新的时钟

创建realtimeClock.bat文件:

@echo off
:getTime
echo The current time is %time%
cls
goto :getTime

3. 格式化日期用于文件名

set "extractdate=%date:~-7,2%%date:~-10,2%%date:~-4,4%"+'000000'
set "extracttime=%time:~-12,2%%time:~-8,2%%time:~-5,2%
echo %extractdate%%extracttime%

示例输出:MyFile-20211231T095959.txt

4. 解决午夜日期滚动问题

当脚本在午夜前运行时,日期可能在两个调用之间滚动。解决方案:

  1. 使用wmic获取原子操作的日期和时间
  2. 使用循环确保日期一致

常见问题解答

Q1: 如何获取上周的日期?

:: 使用PowerShell命令获取上周日期
for /f %%a in ('powershell -command "(Get-Date).AddDays(-7).ToString('MM/dd/yyyy')"') do set lastWeekDate=%%a
echo %lastWeekDate%

Q2: 如何根据当前日期筛选文件?

forfiles /D +0 /C "cmd /c echo @file"

Q3: 如何获取文件的修改日期和时间?

FOR /F "tokens=1,2,3,4,*" %%a in ('DIR "filename.ext"/4 ^| find "/"') do set "filedatetime=%%a %%b %%c"

Q4: 如何输出date /Ttime /T的组合格式?

for /f "tokens=*" %%a in ('date /t') do set mydate=%%a
for /f "tokens=*" %%a in ('time /t') do set mytime=%%a
echo %mydate% %mytime%

Q5: 如何将系统日期更改为明天?

for /f %%a in ('powershell -command "(Get-Date).AddDays(1).ToString('MM/dd/yyyy')"') do date %%a

注意事项

  1. 区域设置影响:不同地区的日期格式可能不同,上述方法在区域设置更改时可能会失效。
  2. 时间精度%time%包含毫秒,而time /t不包含。
  3. 24小时制与12小时制:根据系统设置和命令参数不同,时间显示格式会变化。

最后

掌握批处理文件中获取日期和时间的方法对于自动化脚本编写非常重要。实际应用中,根据具体需求选择最适合的方法,并考虑区域设置等影响因素。

http://www.lryc.cn/news/2380054.html

相关文章:

  • 手写tomcat:基本功能实现(3)
  • Spring Cloud Seata 快速入门及生产实战指南
  • 电商平台自动化
  • Java微服务架构实战:Spring Boot与Spring Cloud的完美结合
  • 王树森推荐系统公开课 召回11:地理位置召回、作者召回、缓存召回
  • 无刷直流水泵构成及工作原理详解--【其利天下技术】
  • less中使用 @supports
  • 大数据:新能源汽车宇宙的未来曲率引擎
  • 【Java ee】关于抓包软件Fiddler Classic的安装与使用
  • 第五部分:第五节 - Express 路由与中间件进阶:厨房的分工与异常处理
  • 在 CentOS 7.9 上部署 node_exporter 并接入 Prometheus + Grafana 实现主机监控
  • C++--内存管理
  • Java实现PDF加水印功能:技术解析与实践指南
  • Django + Celery 打造企业级大模型异步任务管理平台 —— 从需求到完整实践(含全模板源码)
  • TC3xx学习笔记-UCB BMHD使用详解(二)
  • 用Python实现数据库数据自动化导出PDF报告:从MySQL到个性化文档的全流程实践
  • 实战设计模式之状态模式
  • 人工智能、机器学习与深度学习:概念解析与内在联系
  • 什么是着色器 Shader
  • Redis的主从架构
  • 博客系统功能测试
  • 【深度学习新浪潮】什么是多模态大模型?
  • 机器学习前言2
  • 【成品设计】基于Arduino的自动化农业灌溉系统
  • 前端页面 JavaScript数据交互
  • esp32课设记录(三)mqtt通信记录 附mqtt介绍
  • string类(详解)
  • MATLAB | R2025a 更新了哪些有趣的东西?
  • 前缀和——和为K的子数组
  • React 第四十二节 Router 中useLoaderData的用途详解