Windows bat 批处理 日期时间格式化

这篇具有很好参考价值的文章主要介绍了Windows bat 批处理 日期时间格式化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

有一个批处理脚本,脚本中根据当前日期,动态的生成日志文件,
如:当前是 2023年06月20日,我希望生成的日志文件名为:XX_20230620.log

二、获取日期和时间

Windows 在批处理中 获取日期和时间的方式如下:

C:\Users\cyinl>echo "%date%"
"2023/06/20 周一"

C:\Users\cyinl>echo "%time%"
"09:47:34.41"

echo %time% 输出的时间格式:HH:MM:SS.NN
HH:时
MM:分
SS:秒
NN:厘秒(注意不是毫秒,1秒=10分秒=100厘秒=1000毫秒)

三、日期时间格式化处理

Windows 在批处理中对日期时间格式化的处理,其实就是对字符串的处理。
%date%、%time% 都是字符串,只需对两者进行截取再拼接为需要的格式即可。

1. 字符串截取

语法:目标字符串=%源字符串:~起始位置,截取长度%

C:\Users\cyinl>echo %date%
2023/06/20 周二

C:\Users\cyinl>echo %date:~0,4%
2023

C:\Users\cyinl>echo %date:~5,2%
06

C:\Users\cyinl>echo %date:~8,2%
20

C:\Users\cyinl>echo %date:~-2%
周一

C:\Users\cyinl>echo %date:~0,-2%
2023/06/20

C:\Users\cyinl>echo %date:~-8,3%
06/

C:\Users\cyinl>echo %date:~-8,-3%
06/20

C:\Users\cyinl>echo %date:~4%
/06/20 周一

C:\Users\cyinl>echo %date:~,4%
2023

C:\Users\cyinl>echo %date:~4,%
ECHO 处于打开状态。
  • 起始位置:
    1)起始值为 正,表示正着数,如:%date:~5,2%,表示从正着数第5个字符,往后截取2个字符(不含第5个字符);
    2)起始值为 负,表示倒着数,如:%date:~-8,3%,表示从倒着数第8个字符,往后截取3个字符(含第8个字符);
    3)起始值为0或空,表示从最左边开始,如:%date:~,4%%date:~0,4% 都表示从左边起始位置,截取2个字符;
    (起始位置如果省略,必需有个逗号占位,如果逗号省略则表示【截止长度为空】)
  • 截止长度(偏移量):
    1)截止长度为 正,表示截取长度,如:%date:~8,2%,表示从正着数第8个字符,往后截取2个字符(不含第8个字符);
    2)截止长度为 负,表示结束位置,如:%date:~-8,-3%,表示从倒着数第8个字符,往后截取,一直截取到倒数第3个字符的位置(含倒数第8个字符,不含倒数第3个字符);
    3)截止长度为 空,表示截取到结尾位置,如:%date:~4%,表示从正着数第4个字符,往后截取所有字符(不含第4个字符);
    (截止长度如果省略,不能有逗号占位,逗号占位会报:ECHO 处于打开状态)

2. 字符串拼接

字符串拼接比较简单,直接将多个字符串,结合想要的字符拼接到一起就行

C:\Users\cyinl>set var1=aaa

C:\Users\cyinl>set var2=bbb

C:\Users\cyinl>echo A=%var1%
A=aaa

C:\Users\cyinl>echo B=%var2%
B=bbb

C:\Users\cyinl>set "AB=%var1%%var2%"

C:\Users\cyinl>echo %AB%
aaabbb

C:\Users\cyinl>echo %var1%^<%var2%
aaa<bbb

C:\Users\cyinl>echo %var1%^&^&%var2%
aaa&&bbb

需要注意的是,bat批处理中有一些特殊字符,需要进行转义才能作为字符使用,如:

1、@	命令行回显屏蔽符
2、%	批处理变量引导符
3>	重定向符
4>>	重定向符
5<>&<&	重定向符
6|		命令管道符
7、^		转义字符
8&	组合命令
9&&	组合命令
10||	组合命令
11""	字符串界定符
...

3. 日期时间格式化

C:\Users\cyinl>echo %date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,8%
2023-06-20 10:05:14

C:\Users\cyinl>echo %date:~0,4%%date:~5,2%%date:~8,2%
20230620

四、使用示例

回归到最开始我要解决的问题,动态生成按日期划分的日志文件,bat 批处理脚本内容如下:

@echo off
REM chcp 65001
cd F:\Chen\python3\ExciseC
set fdate=%date:~0,4%%date:~5,2%%date:~8,2%
python CSDNScan_v2.py >> scan_history_%fdate%.log 2>&1
REM ping -n 3 127.0.0.1>nul
REM PAUSE

脚本运行后,生成的日志文件如下:
批处理时间,杂项,windows

参考资料:https://blog.csdn.net/peng_cao/article/details/74170979文章来源地址https://www.toymoban.com/news/detail-681357.html

到了这里,关于Windows bat 批处理 日期时间格式化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows 批处理(bat) if条件判断语句使用教程

    在bat脚本中,if条件判断语句共有6种比较操作符,分别为 操作符(不区分大小写) 描述 全称 equ 等于 equal neq 不等于 no equal lss 小于 less than leq 小于等于 leq less than or equal gtr 大于 greater than geq 大于等于 geq greater than or equal 其中,只有等于操作符可以使用符号 “==” 表示,其

    2024年02月03日
    浏览(39)
  • Jenkins通过SSH远程执行Windows批处理bat程序

    确保Windows上成功安装了OpenSSH,可参考:Windows系统下安装OpenSSH-CSDN博客 自行百度 系统管理系统配置,找到Publish over SSH,点击新增 点击 Test Configuration,提示Success,即成功。 关于Remote Directoy参数: 1.为空或不填,会工作在C:UsersAdministrator目录下,即Username对应的目录下 2.如

    2024年04月10日
    浏览(51)
  • 如何检测Windows服务停止后自动启动?自动运行.bat批处理文件?

    作者:西瓜程序猿 主页传送门:https://www.cnblogs.com/kimiliucn 想要确保你的Windows服务即使在崩溃后也能自动重启吗?这篇文章教你如何用一个小巧的批处理脚本来实现这一点。教你怎么设置定时检查,如果发现服务挂了,就立刻拉起来。跟着步骤做,让你的服务稳定运行不再是

    2024年02月05日
    浏览(54)
  • Windows BAT批处理字符串相关操作(字符串定义、分割、拼接、替换、切片、查找)

    使用 set 来定义字符串 代码说明: 将字符串Hello赋值给string1的变量 使用 %string1%%string2% 的方式完成字符串的拼接。 代码说明: 用来连接字符串的字符串,如果包含了特殊字符则需要使用 ^ 转义,并且需要使用 \\\"\\\" 括起来,特殊字符包括(但不限于): 符号 作用 @ 命令行回显

    2024年02月12日
    浏览(28)
  • windows系统cmake生成c++动态库无lib文件解决方法 && bat文件批处理cmd命令

    作为cmake初学者,在windows系统下使用cmake生成c++动态库时出现了下图所示问题,是关于lib文件的。找了一圈,也没发现生成有lib文件。 在google上查,才发现windows系统下动态库生成lib文件,还需要添加以下命令: 生成动态库Demo(链接在此) 文件目录架构: ——源文件目录 —

    2023年04月25日
    浏览(30)
  • BAT 批处理脚本教程

    第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。 小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程。 了解了大概意思后

    2024年02月02日
    浏览(40)
  • 【bat】批处理脚本大全

    目录 1.概述 2.变量 3.运算符 3.2.重定向运算符 3.3.多命名运算符 3.4.管道运算符 4.命令 4.1.基本命令 4.2.参数传递 4.3.查看脚本内容 4.4.注释 4.5.日期和时间 4.6.启动脚本 4.7.调用其他bat 4.8.任务管理 4.8.1.任务列表查看 4.8.2.任务终止 4.9.文件夹 4.10.关机 4.11.环境变量 4.12.目录 4.12.1

    2024年02月04日
    浏览(44)
  • .bat批处理打开多个程序

    作为程序员每天开机都需要打开idea、数据库、xshell等开发软件,操作相对繁琐,于是想起了批处理来帮忙一键启动。 在桌面新建一个txt文件,改后缀名为.bat,并加上下面的代码。 代码一(推荐) 代码执行流程 点击bat文件后先执行第一个语句进入到相应的目录。 执行第二个

    2024年02月11日
    浏览(34)
  • 超详细 批处理文件脚本(bat) 教程(持续更新)

     目录 前言 (1)使用echo输出字符串 (2)使用echo拼接字符串 i)没有变量,直接拼接 ii)有变量,拼接变量  (3)只想打印结果,不想显示回显,可以用@echo off (4)pause 作用是将dos界面暂停关闭 (5)title标识符,用来设置dos的标题 (6)rem用于注释,bat脚本

    2024年02月02日
    浏览(73)
  • 【简单bat】写一个定时关机的批处理程序

    感谢我那可爱的GPT助手对代码的优化工作。

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包