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

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.xdnf.cn/news/7427.html

相关文章:

  • vue3自适应高度超出折叠功能
  • 【DNS寻址之旅】从敲下网址到网页呈现:DNS的“第一次亲密接触”**
  • 聊聊更新中断和更新事件那些事儿
  • 【C++】不推荐使用的std::allocator<void>
  • 对于程序员的个人理解
  • 机器学习第十七讲:PCA → 把100维数据压缩成3D视图仍保持主要特征
  • 【机器人】复现 3D-Mem 具身探索和推理 | 3D场景记忆 CVPR 2025
  • 【STM32】ST-Link V2.1制作
  • 软件工程第六章-详细设计
  • Git 使用全攻略:从入门到精通
  • 牛客网NC209794:使徒袭来
  • 2025年PMP 学习二十一 14章 项目立项管理
  • 系统安全及应用深度笔记
  • (已解决:基于WSL2技术)Windows11家庭中文版(win11家庭版)如何配置和使用Docker Desktop
  • Java大数据机器学习模型在金融衍生品风险建模中的创新实践
  • 【Unity网络编程知识】Unity的 WWW相关类学习
  • 【免费下载】2025年全国地铁路线及站点矢量数据
  • 关于IntegerCache.cache的介绍
  • 【密码学——基础理论与应用】李子臣编著 第十二章 SM3密码杂凑算法 课后习题
  • Ubuntu 远程桌面配置指南
  • 数据要素及征信公司数据要素实践
  • 探究:霍尔开关,在电动晾衣架丝滑升降与卷发器智能温控中的关键作用
  • 已解决——如何让网站实现HTTPS访问?
  • 前端页面 JavaScript数据交互
  • 鸿蒙 系统-安全-程序访问控制-应用权限管控
  • ES6详解
  • Linux中的DNS的安装与配置
  • flow-两种SharingStarted策略的区别示例
  • kotlin Flow的技术范畴
  • 解决软件连接RabbitMQ突发System.IO.IOException: 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接异常