Board logo

标题: 请教一个关于时间的批处理 [打印本页]

作者: eckert     时间: 2008-2-21 21:40    标题: 请教一个关于时间的批处理


─────────────────── 版务记录 ────────────────────
执行:lxmxn
标题:学习中。求教一个问题
说明:因标题表述过于模糊,不便于论坛的搜索和管理,请在三日内修改标题,否则扣除2点积分
参考:http://www.cn-dos.net/forum/viewthread.php?tid=7326&fpage=1
   http://www.cn-dos.net/forum/viewthread.php?tid=1415
─────────────────── 版务记录 ────────────────────


怎样在批处理中显示时间啊?

格式如下。

2008年2月21日      星期四      20:30

[ Last edited by eckert on 2008-2-21 at 09:46 PM ]
作者: suntb     时间: 2008-2-21 22:25
是指当前日期及时间吗?
作者: everest79     时间: 2008-2-21 23:12
echo %date% %time:~0,5%
作者: suntb     时间: 2008-2-21 23:22
自己也是一个新手,星期几不知如何获得,只能输出日期及时间
CODE:  [Copy to clipboard]
@echo off
for /f "tokens=1,2,3 delims=- " %%i in ('date /t') do echo %%i年%%j月%%k日 %time:~0,5%
pause>nul
输出结果示例为:

  Quote:
2008年02月21日 22:12

[ Last edited by suntb on 2008-2-21 at 11:24 PM ]
作者: suntb     时间: 2008-2-21 23:25
在我这%date%无法显示星期几,不知道大家那是什么样子
作者: everest79     时间: 2008-2-21 23:28
正常的,在区域与时间中不同的设置会导至这样的问题
作者: suntb     时间: 2008-2-21 23:30
我这%date%显示结果为:2008-02-21

echo %date:~0,4%年%date:~5,2%月%date:~8,2%日 %time:~0,5%

好象也行
作者: suntb     时间: 2008-2-21 23:30


  Quote:
Originally posted by everest79 at 2008-2-21 23:28:
正常的,在区域与时间中不同的设置会导至这样的问题

如何设置区域与时间才能在%date%中显示星期几?

[ Last edited by suntb on 2008-2-21 at 11:33 PM ]
作者: eckert     时间: 2008-2-21 23:33
3楼的代码好。  但是我这里怎么回这样显示结果啊

代码
@echo %date% %time:~0,5%
pause

显示
2008-02-21 星期四 22:22

C:\Documents and Settings\Administrator\桌面>pause
请按任意键继续. . .

为什么回出现一行  c:\    这个路径?
作者: xmi     时间: 2008-2-21 23:47


  Quote:
Originally posted by suntb at 2008-2-21 11:22 PM:
自己也是一个新手,星期几不知如何获得,只能输出日期及时间

[code]
@echo off
for /f "tokens=1,2,3 delims=- " %%i in ('date /t') do echo %%i年%%j月%%k日 %t ...

為什麼我的結果是:
2008/02/21年星期四月日 22:39
作者: xmi     时间: 2008-2-21 23:57


  Quote:
Originally posted by everest79 at 2008-2-21 11:12 PM:
echo %date% %time:~0,5%

~0, 5%是何解?
作者: suntb     时间: 2008-2-21 23:58
改了下批处理,再试试看
CODE:  [Copy to clipboard]
@echo off
::设置时区信息
reg add "HKCU\Control Panel\International" /v "sShortDate" /d "yyyy-M-d dddd" /f>nul
reg add "HKU\.DEFAULT\Control Panel\International" /v "sShortDate" /d "yyyy-M-d dddd" /f>nul

for /f "tokens=1,2,3,4 delims=/- " %%i in ('date /t') do echo %%i年%%j月%%k日 %%l %time:~0,5%
pause>nul
[ Last edited by suntb on 2008-2-22 at 11:31 PM ]
作者: suntb     时间: 2008-2-22 00:05


  Quote:
Originally posted by xmi at 2008-2-21 23:57:


~0, 5%是何解?

在%time%中跳过0个字符开始,取得长度为5个字符的值

这是为了屏蔽有些机子%time%中含有秒的信息

[ Last edited by suntb on 2008-2-24 at 11:02 AM ]
作者: xmi     时间: 2008-2-22 00:13


  Quote:
Originally posted by suntb at 2008-2-21 11:58 PM:
改了下批处理,再试试看
[code]
@echo off
::设置时区信息
reg add "HKCU\Control Panel\International" /v "sShortDate" /d "yyyy-M-d dddd" /f>nul
re ...

這個成功, 但要按enter後才出現....以上看來是要set了時區才能....:P
謝了
作者: echo     时间: 2008-2-22 00:25
从%time%的第0个字符开始,取得长度为5个字符的值

这是为了屏蔽有些机子%time%中含有秒的信息 [/quote]
原来如此,到现在才明白,谢谢这位仁兄……
作者: xmi     时间: 2008-2-22 20:18
[解決了]

  Quote:
請教我怎樣可以回覆沒有set時區時的舊貌?因為我發覺我成個電腦係統都reset了....

[ Last edited by xmi on 2008-2-22 at 11:35 PM ]
作者: suntb     时间: 2008-2-24 11:04


  Quote:
Originally posted by xmi at 2008-2-22 00:13:


這個成功, 但要按enter後才出現....以上看來是要set了時區才能....:P
謝了

要按enter是因为最后一行有个暂停,将“pause>nul”删除就可以
事实上你按任意键都可以,不一定非得enter键
作者: huajinghua     时间: 2008-2-24 15:46


  Quote:
Originally posted by eckert at 2008-2-21 03:33 AM:
3楼的代码好。  但是我这里怎么回这样显示结果啊

代码
@echo %date% %time:~0,5%
pause

显示
2008-02-21 星期四 22:22

C:\Documents and Settings\Administrator\桌面 ...

在代码开头加上@echo off
作者: faultcode     时间: 2008-2-24 20:28


  Quote:
Originally posted by xmi at 2008-2-21 11:47 PM:


為什麼我的結果是:
2008/02/21年星期四月日 22:39

因为你的delims 应该是/吧
作者: yuehong     时间: 2008-3-5 18:46
不错的代码,收藏了




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5