中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-11 21:10
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]批处理获取当前日期格式 查看 1,885 回复 12
楼 主 [已结]批处理获取当前日期格式 发表于 2008-12-15 23:52 ·  中国 香港 电讯盈科有限公司
初级用户
积分 22
发帖 21
注册 2008-12-10 14:41
17年会员
UID 133436
性别 男
状态 离线
如何只用批处理语句获取当前日期格式?
如当前日期是2008-12-15,即获取的格式为:yyyy-mm-dd
可参考:

@echo off
ECHO. |DATE > temp
for /f "eol=T tokens=5 delims=() " %%i in (temp) do set date_format=%%i
echo %date_format%
if EXIST temp DEL /Q temp
pause

能不要把日期先写到文件temp中吗?
我自己改正了,如下:

@echo off
FOR /F "eol=T tokens=5 delims=() " %%i in ('ECHO. ^|DATE') do echo %%i
pause


[ Last edited by HAT on 2008-12-16 at 11:53 ]
Watch and Learn!
2 发表于 2008-12-16 00:36 ·  中国 上海 电信
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
19年会员
UID 90372
性别 男
状态 离线
搞得那麼復雜乾哈

echo %date:~,10%
3 发表于 2008-12-16 02:32 ·  中国 山西 太原 联通
初级用户
积分 42
发帖 37
注册 2008-12-05 23:59
17年会员
UID 133025
性别 男
状态 离线
好!
:~,10
这部分是嘛意思?
4 发表于 2008-12-16 03:09 ·  中国 山西 太原 联通
初级用户
积分 42
发帖 37
注册 2008-12-05 23:59
17年会员
UID 133025
性别 男
状态 离线
5 发表于 2008-12-16 03:12 ·  中国 山西 太原 联通
初级用户
积分 42
发帖 37
注册 2008-12-05 23:59
17年会员
UID 133025
性别 男
状态 离线
取DATE变量的前十个字符
懂了,哈哈。
6 发表于 2008-12-16 09:12 ·  中国 香港 新世界电讯
初级用户
积分 22
发帖 21
注册 2008-12-10 14:41
17年会员
UID 133436
性别 男
状态 离线
Originally posted by pooronce at 2008-12-16 00:36:
搞得那麼復雜乾哈

echo %date:~,10%

我要获取日期格式,而不是具体的日期。
感谢你的回复。
Watch and Learn!
7 发表于 2008-12-16 10:38 ·  中国 上海 浦东新区 电信
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
19年会员
UID 90372
性别 男
状态 离线
The current date is: 2008-12-16 星期二
Enter the new date: (yy-mm-dd)

你是指这个: (yy-mm-dd)?

for /f "skip=1 tokens=2 delims=()" %i in ('DATE^<nul') do @echo %i
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
HAT +2 2008-12-16 11:52
8 发表于 2008-12-16 10:59 ·  中国 香港 新世界电讯
初级用户
积分 22
发帖 21
注册 2008-12-10 14:41
17年会员
UID 133436
性别 男
状态 离线
Originally posted by pooronce at 2008-12-16 10:38:
The current date is: 2008-12-16 星期二
Enter the new date: (yy-mm-dd)

你是指这个: (yy-mm-dd)?

for /f "skip=1 tokens=2 delims=()" %i in ('DATE^<nul') do @echo %i

楼上的也是正解。但可能没注意要用“%%i”。


@echo off
for /f "tokens=2 delims=()" %%i in ('DATE^<nul') do echo %%i
pause

可以解释一下'DATE^<nul'为什么会跳一段字符串?第二个tokens就取到日期格式?:)
Watch and Learn!
9 发表于 2008-12-16 11:03 ·  中国 上海 浦东新区 电信
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
19年会员
UID 90372
性别 男
状态 离线
直接在命令符下打的,当然不用%%i,这点区别用不着提吧
你自己试一下DATE命令不就知道为什么了啊。。。
10 发表于 2008-12-16 11:07 ·  中国 香港 新世界电讯
初级用户
积分 22
发帖 21
注册 2008-12-10 14:41
17年会员
UID 133436
性别 男
状态 离线
Originally posted by pooronce at 2008-12-16 11:03:
直接在命令符下打的,当然不用%%i,这点区别用不着提吧
你自己试一下DATE命令不就知道为什么了啊。。。

哈,我是新手。谢谢!!
Watch and Learn!
11 发表于 2010-08-20 01:57 ·  中国 四川 巴中 电信
新手上路
积分 8
发帖 7
注册 2010-07-28 16:10
16年会员
UID 171372
性别 男
状态 离线
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=2 delims=()" %%x in ('DATE^<nul') do set D_type=%%x
:: echo !D_type!
for /l %%a in (0,1,2) do if "!D_type:~%%a,1!"=="年" set /a D_yr=%%a+1
for /l %%a in (0,1,2) do if "!D_type:~%%a,1!"=="月" set /a D_mr=%%a+1
for /l %%a in (0,1,2) do if "!D_type:~%%a,1!"=="日" set /a D_dr=%%a+1
for /f "tokens=%D_yr% delims=-" %%x in ('DATE /t') do echo 年:%%x
for /f "tokens=%D_mr% delims=-" %%x in ('DATE /t') do echo 月:%%x
for /f "tokens=%D_dr% delims=-" %%x in ('DATE /t') do echo 日:%%x
pause
12 发表于 2010-08-20 02:00 ·  中国 四川 巴中 电信
新手上路
积分 8
发帖 7
注册 2010-07-28 16:10
16年会员
UID 171372
性别 男
状态 离线
高手指教一下,怎么判断日期分隔符,长格式日期,去掉星期.
13 发表于 2010-08-20 02:21 ·  中国 四川 巴中 电信
新手上路
积分 8
发帖 7
注册 2010-07-28 16:10
16年会员
UID 171372
性别 男
状态 离线
而且这种方式判断日期格式是不准确的
论坛跳转: