中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]批处理获取当前日期格式
作者:
标题: [已结]批处理获取当前日期格式 上一主题 | 下一主题
alex9527
初级用户





积分 22
发帖 21
注册 2008-12-10
状态 离线
『楼 主』:  [已结]批处理获取当前日期格式

如何只用批处理语句获取当前日期格式?
如当前日期是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!
2008-12-15 23:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pooronce
中级用户





积分 484
发帖 250
注册 2007-6-5
状态 离线
『第 2 楼』:  

搞得那麼復雜乾哈
echo %date:~,10%


2008-12-16 00:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
15935643331
初级用户





积分 42
发帖 37
注册 2008-12-5
状态 离线
『第 3 楼』:  

好!
:~,10
这部分是嘛意思?

2008-12-16 02:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
15935643331
初级用户





积分 42
发帖 37
注册 2008-12-5
状态 离线
『第 4 楼』:  



2008-12-16 03:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
15935643331
初级用户





积分 42
发帖 37
注册 2008-12-5
状态 离线
『第 5 楼』:  

取DATE变量的前十个字符
懂了,哈哈。

2008-12-16 03:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
alex9527
初级用户





积分 22
发帖 21
注册 2008-12-10
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by pooronce at 2008-12-16 00:36:
搞得那麼復雜乾哈
echo %date:~,10%

我要获取日期格式,而不是具体的日期。
感谢你的回复。



Watch and Learn!
2008-12-16 09:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pooronce
中级用户





积分 484
发帖 250
注册 2007-6-5
状态 离线
『第 7 楼』:  

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


   此帖被 +2 点积分    点击查看详情   
评分人:【 HAT 分数: +2  时间:2008-12-16 11:52


2008-12-16 10:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
alex9527
初级用户





积分 22
发帖 21
注册 2008-12-10
状态 离线
『第 8 楼』:  



  Quote:
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!
2008-12-16 10:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pooronce
中级用户





积分 484
发帖 250
注册 2007-6-5
状态 离线
『第 9 楼』:  

直接在命令符下打的,当然不用%%i,这点区别用不着提吧
你自己试一下DATE命令不就知道为什么了啊。。。

2008-12-16 11:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
alex9527
初级用户





积分 22
发帖 21
注册 2008-12-10
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by pooronce at 2008-12-16 11:03:
直接在命令符下打的,当然不用%%i,这点区别用不着提吧
你自己试一下DATE命令不就知道为什么了啊。。。

哈,我是新手。谢谢!!



Watch and Learn!
2008-12-16 11:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3mcat
新手上路





积分 8
发帖 7
注册 2010-7-28
状态 离线
『第 11 楼』:  

@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

2010-8-20 01:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3mcat
新手上路





积分 8
发帖 7
注册 2010-7-28
状态 离线
『第 12 楼』:  

高手指教一下,怎么判断日期分隔符,长格式日期,去掉星期.

2010-8-20 02:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3mcat
新手上路





积分 8
发帖 7
注册 2010-7-28
状态 离线
『第 13 楼』:  

而且这种方式判断日期格式是不准确的


2010-8-20 02:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: