位置: 编程技术 - 正文
谈到日期字符串的输出,真是让人烦。
在Linux下,简单的一句话:date '+%Y%m%d-%H%M%S'就可以得到你要的输出:- 可是在windows下,要想得到这个,还是需要费点功夫的。
1. 直接用字符串格式化输出
比如,如果你的机器上时间的输出是这样子的: c:>echo %date%-%time% -- 星期六- 6::. 那么,要想得到输出- ,可以这样截取字符串: c:>echo %date:~0,4%%date:~5,2%%date:~8,2%-%time:~0,2%%time:~3,2%%time:~6,2% - 表示取从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 中使用双引号扩起文件名称。 参照这个用法,我们可以对日期字符串进行格式化输出: 因为日期结果是:-- 星期六 因为分隔字符是'-'还有空格' ',所以取3段出来,如: c:>for /f "tokens=1-3 delims=- " %1 in ("%date%") do @echo %1%2%3 再看时间: c:>echo %time% 6::. c:>for /f "tokens=1-3 delims=.: " %1 in ("%time%") do @echo %1%2%3 两者一结合起来可以这样用:
写成批处理,就变成这样(goodtime.bat):
echo goodtime=%ttt% 这种方法比较灵活。
3.还有一种,是使用VBScript来定制输出
结果如下,还是比较有意思的
总结起来,第3种方法最复杂,目前还不能断定是否在所有windows平台都能正确运行,但是结果应该是固定的。不随着date,time格式变动而变动。但是1和2会依赖于日期时间的格式。仅此而已。 还是linux下比较固定。
推荐整理分享再谈DOS批处理下格式化日期字符串的三种方法(详解)(dos常用命令与批处理文件),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:dos批处理命令大全,dos批处理命令大全,dos批命令,dos批处理命令大全,dosbox批处理,dos批处理命令大全,dos 批处理,dos 批处理,内容如对您有帮助,希望把文章链接给更多的朋友!
win7怎么设定关闭显示器时间 使用windows批处理实现设置关闭显示的时间。@echooffsetlocalenabledelayedexpansionecho"请输入关闭显示器的时间,单位是分钟,默认1分钟"set/p"timeout="ifNOTDEFINEDtime
用批处理一键安装两种扩展名的Windows系统补丁 每个人都可能重装过操作系统。可每次安装好操作系统后花费时间最长的就是下载补丁安装补丁了,往往下载补丁安装补丁都花去了大半天的事情,在Vi
Windows设置开机自启动bat脚本 例如我们要开机自启动一个脚本:C:abcscript.bat。如果直接开机启动该脚本会弹出一个黑框,我们希望能后台执行它。此时我们需要建一个.vbs脚本来后
标签: dos常用命令与批处理文件
本文链接地址:https://www.jiuchutong.com/biancheng/375091.html 转载请保留说明!友情链接: 武汉网站建设