• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >DOS/BAT > 再谈DOS批处理下格式化日期字符串的三种方法(详解)

再谈DOS批处理下格式化日期字符串的三种方法(详解)

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了dos 字符串,dos 字符串替换,dos 替换 中的字符串,dos 字符串处理,dos 字符串截取等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

谈到日期字符串的输出,真是让人烦。

在Linux下,简单的一句话:date '+%Y%m%d-%H%M%S'就可以得到你要的输出:20120331-064219
可是在windows下,要想得到这个,还是需要费点功夫的。

1. 直接用字符串格式化输出

比如,如果你的机器上时间的输出是这样子的:
c:\>echo %date%-%time%
2012-03-31 星期六- 6:44:02.50
那么,要想得到输出20120331- 64402,可以这样截取字符串:
c:\>echo %date:~0,4%%date:~5,2%%date:~8,2%-%time:~0,2%%time:~3,2%%time:~6,2%
20120331- 65406
表示取从0位置开始4个字符等等。这个方法不能截断空格。比较恼火

2.用for语句分断截取,似乎好点

先看看for的用法:

optinos
eol=c           - 指一个行注释字符的结尾(就一个)//要忽略以什么字符开头的行
skip=n          - 指在文件开始时忽略的行数。
delims=xxx      - 指分隔符集。这个替换了空格和跳格键的//指定分割的字符列入delims=;:.使用了";",":","."做分隔
                  默认分隔符集。
tokens=x,y,m-n  - 指每行的哪一个符号被传递到每个迭代
                  的 for 本身。这会导致额外变量名称的分配。m-n
                  格式为一个范围。通过 nth 符号指定 mth。如果
                  符号字符串中的最后一个字符星号,
                  那么额外的变量将在最后一个符号解析之后
                  分配并接受行的保留文本。
usebackq        - 指定新语法已在下类情况中使用:
                  在作为命令执行一个后引号的字符串并且一个单
                  引号字符为文字字符串命令并允许在 filenameset
                  中使用双引号扩起文件名称。
参照这个用法,我们可以对日期字符串进行格式化输出:
因为日期结果是:2012-03-31 星期六
因为分隔字符是'-'还有空格' ',所以取3段出来,如:
c:\>for /f "tokens=1-3 delims=- " %1 in ("%date%") do @echo %1%2%3
20120331
再看时间:
c:\>echo %time%
6:59:20.38
c:\>for /f "tokens=1-3 delims=.: " %1 in ("%time%") do @echo %1%2%3
65939
两者一结合起来可以这样用:

写成批处理,就变成这样(goodtime.bat):

echo goodtime=%ttt%
这种方法比较灵活。

3.还有一种,是使用VBScript来定制输出

结果如下,还是比较有意思的

总结起来,第3种方法最复杂,目前还不能断定是否在所有windows平台都能正确运行,但是结果应该是固定的。不随着date,time格式变动而变动。但是1和2会依赖于日期时间的格式。仅此而已。
还是linux下比较固定。

</div>

您可能想查找下面的文章:

  • 再谈DOS批处理下格式化日期字符串的三种方法(详解)
  • DOS截取字符串的方法
  • 再谈DOS批处理下格式化日期字符串的多种方法(详解)

相关文章

  • dos下遍历目录和文件的代码(主要利用for命令)
  • 将txt文件名写入文件首行的bat代码(保留源文件)
  • Netsh.exe 工具和命令行开关说明
  • 超简单超强悍的清理C盘垃圾文件方法
  • DOS下的多媒体
  • 开始→运行(cmd)命令大全第1/2页
  • DOS批处理高级教程 第四章 批处理中的变量
  • 用DOS杀毒的一个不错的应用
  • dos 文件复制 copy命令
  • 使用bat批处理来安装和卸载ASP组件

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 清除3389远程桌面连接记录的批处理
    • Emm386、Lh、Memmaker命令使用说明
    • powercfg 命令 关闭显示器写法
    • 巧用DOS命令合并多个文本文件的内容
    • 干掉进程并删除源文件的批处理bat代码
    • windows批处理命令教程
    • 为cmd设置密码的批处理
    • 出错提示与对策
    • cmd 进入d盘或d盘的某个文件夹
    • 用批处理实现将文件以数字重命名的代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有