Board logo

标题: [日期时间] 如何删除/去掉日期中月日数字前面/前导/开头的0/零 [打印本页]

作者: 692568516    时间: 2016-4-23 15:55     标题: 如何删除/去掉日期中月日数字前面/前导/开头的0/零

echo %date:~0,4%-%date:~5,2%-%date:~8,2%
截取的是2015-02-20
请问如何修改让截取成2015-2-20就是不个数天数的0
类似于
谢谢
作者: Nsqs    时间: 2016-4-23 16:41

本帖最后由 Nsqs 于 2016-4-23 16:42 编辑
  1. @echo off
  2. for /f "tokens=1-3 delims=/- " %%1 in ("%date%")do set/a y=%%1,m=%%2,d=%%3&call set date=%%y%%-%%m%%-%%d%%
  3. echo %date%
  4. pause
复制代码
直接调用%date%即可
作者: 692568516    时间: 2016-4-23 16:51

测试可以,非常感谢大神
作者: pcl_test    时间: 2016-4-24 14:24

本帖最后由 pcl_test 于 2016-4-24 21:36 编辑

回复 2# Nsqs


注意八进制的问题
for /f "tokens=1-3 delims=/- " %%a in ("%date%")do set/a y=%%a,m=1%%b%%100,d=1%%c%%100
作者: Nsqs    时间: 2016-4-24 22:12

回复 4# pcl_test


    没必要
作者: pcl_test    时间: 2016-4-24 22:26

回复 5# Nsqs

比如2016/01/08
作者: Nsqs    时间: 2016-4-25 00:06

回复 4# pcl_test


  一样的,,会有问题
作者: CrLf    时间: 2016-4-25 00:17

回复 7# Nsqs


    他的意思是08月09号就不能直接取值了
作者: Nsqs    时间: 2016-4-25 00:37

本帖最后由 Nsqs 于 2016-4-25 01:01 编辑

回复 8# CrLf
  1. :sub bat
  2. echo off&cls
  3. cscript -nologo -e:vbs "%0"
  4. pause
  5. exit sub
  6. :end sub
  7. wsh.echo date
复制代码
直接这样``
作者: Nsqs    时间: 2016-4-25 00:38

回复 8# CrLf


    太麻烦,要是11-18又会出错,
作者: WHY    时间: 2016-4-26 08:59

  1. set "d=%date:~0,10%"
  2. set "d=%d:/0=/%"
  3. set "d=%d:-0=-%"
  4. echo;%d%
复制代码

作者: 692568516    时间: 2016-5-9 09:00

本帖最后由 pcl_test 于 2016-5-9 12:00 编辑

回复 2# Nsqs
E:\>set/a y=2016,m=05,d=09  & call set date=%y%-%m%-%d%
无效数字。数字常数只能是十进制(17),十六位进制(0x11)或
八进制(021)。
2楼的出错了,大于10的日期没问题,小于10的就会出错
作者: wzxiaodu    时间: 2016-5-10 13:15

  1. m=1%%b%%100,d=1%%c%%100
复制代码
这个是什么意思????




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2