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
自己也是一个新手,星期几不知如何获得,只能输出日期及时间


@echo off
for /f "tokens=1,2,3 delims=- " %%i in ('date /t') do echo %%i年%%j月%%k日 %time:~0,5%
pause>nul

输出结果示例为:

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


@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
Originally posted by everest79 at 2008-2-21 11:12 PM:
echo %date% %time:~0,5%


~0, 5%是何解?

作者: suntb     时间: 2008-2-21 23:58
改了下批处理,再试试看

@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
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
Originally posted by suntb at 2008-2-21 11:58 PM:
改了下批处理,再试试看

@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


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


Last edited by xmi on 2008-2-22 at 11:35 PM ]

作者: suntb     时间: 2008-2-24 11:04
Originally posted by xmi at 2008-2-22 00:13:


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


要按enter是因为最后一行有个暂停,将“pause>nul”删除就可以
事实上你按任意键都可以,不一定非得enter键

作者: huajinghua     时间: 2008-2-24 15:46
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
Originally posted by xmi at 2008-2-21 11:47 PM:


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


因为你的delims 应该是/吧

作者: yuehong     时间: 2008-3-5 18:46
不错的代码,收藏了