日期时间获取

%date%%time%是系统内置的日期变量和时间变量;

@REM 提取年月日信息
echo %date:~0,10%
@REM 提取星期几信息
echo %date:~-3%
@REM 提取时间中的时和分
echo %time:~0,5%
@REM 提取时和分和秒信息
echo %time:~0,-3%
@REM 年
echo %Date:~0,4%
@REM 月
echo %Date:~5,2%
@REM 日
echo %Date:~8,2%
@REM 时
echo %Time:~0,2%
@REM 分
echo %Time:~3,2%
@REM 秒
echo %Time:~6,2%

上述取小时的代码存在问题, 如果时间小于10点, 上述得到的小时为" 9"而不是"09", 如果使用小时的代码未对空格做特殊处理, 容易导致问题;

set time0=%time: =0%
set hour=%time0:~0,2%@REM 或者set hour=%time:~0,2%
if %hour% LSS 10 (set hour=0%time:~1,2%
)

其实前者就是先把time中的空格换成0, 然后再取小时数据; 后者就是先取时间, 然后通过比较时间, 判断需不需要在前面补0;

字符串处理

上述的操作本质上都是batch脚本中的字符串操作, 常见的操作如下:

  1. 截取字符串
    截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符。举例说明其基本功能:
@echo off
Setlocal enabledelayedexpansion
::CODER BY dsw POWERD BY iBATset abc=hello world, this string come from bat
echo 原字符串为:%abc%
echo 截取前5个字符:%abc:~0,5%
echo 截取最后5个字符:%abc:~-5%
echo 截取第一个到倒数第6个字符:%abc:~1,-5%
echo 从第4个字符开始截取5个字符:%abc:~3,5%
echo 从倒数第14个字符开始截取5个字符:%abc:~-14,5%echo 当前时间是:%time% 即 %time:~0,2%点%time:~3,2%分%time:~6,2%秒%time:~9,2%厘秒
pause

输出为:

原字符串为:hello world, this string come from bat
截取前5个字符:hello
截取最后5个字符:m bat
截取第一个到倒数第6个字符:ello world, this string come fro
从第4个字符开始截取5个字符:lo wo
从倒数第14个字符开始截取5个字符: come
当前时间是:18:37:58.75 即 18点37分58秒75厘秒
  1. 替换字符串
    替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串。举例:
@echo off
Setlocal enabledelayedexpansion
::CODER BY dsw POWERD BY iBATset aa=伟大的中国!我为你自豪
echo 替换前:%aa%
echo 替换后:%aa:中国=中华人民共和国%
echo aa=%aa%
echo %aa%
set aa=%aa:中国=中华人民共和国%
echo aa=%aa%pause

输出为:

替换前:伟大的中国!我为你自豪
替换后:伟大的中华人民共和国!我为你自豪
aa=伟大的中国!我为你自豪伟大的中国!我为你自豪
aa=伟大的中华人民共和国!我为你自豪

对于上面的例子有一点说明,对比两个echo aa = %aa%可以发现,其等价与:aa=%aa% echo aa=%aa%

  1. 字符串合并
    其实,合并字符串就是将两个字符串放在一起就可以了。举例说明:
@echo off
Setlocal enabledelayedexpansion
::CODER BY dsw POWERD BY iBATset aa=伟大的中国!
set bb=我为你自豪
echo %aa%%bb%echo aa=%aa%
echo bb=%bb%
set “aa=%aa%%bb%”
echo aa=%aa%
pause

输出为:

伟大的中国!我为你自豪
aa=伟大的中国!
bb=我为你自豪
aa=伟大的中国!我为你自豪
复制代码
同样,如果要改变变量aa的内容的话,就需要将合并结果“%aa%%bb%”赋值给变量aa。
  1. 扩充字符串
    “扩充”这个词汇来自于微软自己的翻译,意思就是对表示文件路径的字符串进行特殊的处理,具体功能罗列如下:
  ~I - 删除任何引号(“),扩充 %I%~fI - 将 %I 扩充到一个完全合格的路径名%~dI - 仅将 %I 扩充到一个驱动器号%~pI - 仅将 %I 扩充到一个路径%~nI - 仅将 %I 扩充到一个文件名%~xI - 仅将 %I 扩充到一个文件扩展名%~sI - 扩充的路径只含有短名%~aI - 将 %I 扩充到文件的文件属性%~tI - 将 %I 扩充到文件的日期/时间%~zI - 将 %I 扩充到文件的大小%~PATH:I−查找列在路径环境变量的目录,并将到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩充到空字符串可以组合修饰符来得到多重结果:        PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个驱动器号和路径。%~ftzaI - 将 %I 扩充到类似输出线路的 DIR

以上内容引用于for /?帮助信息。其中的I代表变量I,不过需要说明的是,不是所有的变量都能够进行扩充的,有两个条件:

  • 该字符串代表一个文件路径;
  • 变量要用%x来表示,x可取a-z A-Z 0-9共62个字符中的任意一个。

-表示字符串右边的意思, -3表示从字符串右边为0, 向左移动3个位置;

参考文章

  1. 批处理-字符串操作
  2. bat批处理日期时间格式设置使用

Bat脚本日期时间获取相关推荐

  1. wincc显示系统时间_wincc系统日期时间获取

    wincc 系统日期时间获取 系统时间的获得,有两种办法,一是建立 TAG ,二是使用函数获取 系统时间 方法一: 在 [Tag Management] 添加新的驱动 "System Inf ...

  2. Python笔记:日期时间获取与转换

    世界时(Universal Time, UT)是根据地球自转周期确定的时间,1s为全年内每日平均长度的1/86400,由于地球绕太阳公转的轨道不是圆的,地球与太阳之间的距离不是固定的,导致太阳相对绕地 ...

  3. linux脚本日期时间,Linux 日期和时间操作详解

    Linux 日期和时间操作详解 发布时间:2012-11-27 15:10:07   作者:佚名   我要评论 Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Cl ...

  4. 自己封装的一个js方法用于获取显示的星期和日期时间

    自己封装的一个js方法用于获取显示的星期和日期时间 /*** 获取用于显示的星期和日期时间* @param date* @returns {string}*/ function getWeek(dat ...

  5. Java:获取当前日期当前季度、上一季度开始结束日期时间

    获取当前时间的所在季度开始结束日期 /*** 计算某日期所在季度开始日期* 季度划分:1.2.3, 4.5.6, 7.8.9, 10.11.12*/public static Date getSeas ...

  6. mysql 时间字符串 1_Mysql 中的日期时间字符串查询

    一.将数据库中的Date格式的数据,或者指定日期的字符串格式化为想要的样式 DATE_FORMAT (date, format)能根据格式串format 格式化日期或日期和时间值date,返回结果字符 ...

  7. php 日期时间操作-可算出几天后的时间

    来源:http://www.phpnewer.com/index.php/Cjwt/detail/id/421.html -------------------- 本文为大家介绍一下根据PHP时间戳获 ...

  8. bat中文乱码_详解Windows下获取时间bat脚本总结,值得收藏

    概述 最近都在写ftp windows环境的一些bat脚本,为了方便显示,想要记录一下每次操作的时间,所以在这里总结一下windows环境bat脚本获取时间的常用命令. windows环境获取时间相关 ...

  9. ubuntu shell获取IP地址、日期时间、重定向保存log,shell脚本保存管道命令执行结果

    # shell 字符串替换还是用 sed比较方便 $ ip addr | grep global | cut -b 10-20 | sed 's/\./_/g' # 效果是: 输出 10_123_12 ...

最新文章

  1. 有了这个工具,不执行代码就可以找PyTorch模型错误
  2. ASP.NET MVC5+EF6+EasyUI 后台管理系统(42)-工作流设计-表建立
  3. erlang 怎么获得socket中的属性_技术干货,python中的异步网络框架socketserver
  4. 从头开始敲代码之《从BaseApplication/Activity开始》
  5. 2019-03-21-算法-进化(合并两个有序链表)
  6. java向后兼容吗_Java向后不兼容历史的观察
  7. WindowsAPI详解——GetCurrentDirectory 获得程序当前目录
  8. 如何加声调口诀_声母韵母口诀顺口溜歌曲(怎么快速记住声母韵母)
  9. 关于Bus的几个问题
  10. 2.导数——线性代数回顾、曲线概念_1
  11. 每天工作4小时的程序员_IT新闻_博客园
  12. Struts2配置国际化文件
  13. 计算噪声方差的函数 matlab,噪声强度(噪声功率) 噪声方差到底有什么关系? matlab中的awgn函数...
  14. 贪心科技机器学习训练营(七)
  15. java 16进制 负数_Java随笔:小心16进制负数
  16. 简单理解串行计算、并行计算、分布式计算、网格计算与云计算
  17. 修复下载后已发生损坏的压缩包(.rar)文件
  18. python监听鼠标键盘_python用pynput监听控制键盘鼠标
  19. 宝利通网闸怎么设置_polycomMCU操作指南
  20. 苹果要和 ARM 在 WWDC 举办「婚礼」,定义下一个 10 年

热门文章

  1. 2019,UI革命,暗黑模式的崛起
  2. 音频中间件的7大功能 您无法抗拒的wwise好课程
  3. 抖音小程序怎么赚钱,都有哪些变现玩法技巧。
  4. Unity3D Shader 入门第一天
  5. A40i使用笔记:编译驱动到内核中调用(ubuntu和A40i平台)
  6. 计算机公司 英语日常用语,计算机专用英语词汇1500词SampleTextSampleText电脑日常用语.PDF...
  7. [lintcode553] Bomb Enemy 炸弹人 python实现
  8. go猫粮代理公司百加世:每个生命 都值得被尊重
  9. [附源码]Python计算机毕业设计SSM基于的英语学习网站的设计与实现(程序+LW)
  10. 基于SSM诗词问答系统的设计与实现