中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何以当前日期时间为名建立日志文件
作者:
标题: 如何以当前日期时间为名建立日志文件 上一主题 | 下一主题
w1972
新手上路





积分 12
发帖 5
注册 2007-4-29
状态 离线
『楼 主』:  如何以当前日期时间为名建立日志文件

工作需要每天四次检测网络连通情况,执行结果要保存。 计划将文件名表示为YYYYmmddHHssmm.txt 现用如下命令实现: 测试.bat > %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%.txt 但是当时间介于0点到9点时,%time:~0,2%时间函数取值会出现“ ”空格,不会像日期一样补0,即10点到23点之间,程序运行正常,其他时间则会由于文件名中包含空格出错。 请各位大虾帮帮忙,实现0点到9点之间文件名能在小时前补0 多谢多谢!!!


2007-4-29 03:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
honghunter
中级用户





积分 321
发帖 135
注册 2007-2-4
状态 离线
『第 2 楼』:  

一个不理想的办法,是设置一下电脑的区域选项,把时间格式设置一下。




2007-4-29 03:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  

@echo off
set time_=00%time%
set time_=%time:~-11%
set ok=%date:~0,4%%date:~5,2%%date:~8,2%%time_:~0,2%%time_:~3,2%.txt
echo md %ok%
pause


2007-4-29 04:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
w1972
新手上路





积分 12
发帖 5
注册 2007-4-29
状态 离线
『第 4 楼』:  

谢谢斑竹回复!! 可是用你的方法仍然会产生空格,是否有办法把0-9点前的空格替换成数字0?


2007-4-29 21:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
w1972
新手上路





积分 12
发帖 5
注册 2007-4-29
状态 离线
『第 5 楼』:  

自己解决了,原来的判断语句有问题 @echo 正在测试,请等待............ @echo off if "%time:~0,1%"==" " goto pppp ping 127.0.0.1 > %date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%.txt goto end :pppp ping 127.0.0.1 > %date:~0,4%%date:~5,2%%date:~8,2%_0%time:~1,1%%time:~3,2%.txt goto end :end pause


2007-4-29 22:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 6 楼』:  

这个应该可以了:
@echo off
set time_=%time: =0%
set ok=%date:~0,4%%date:~5,2%%date:~8,2%%time_:~0,2%%time_:~3,2%
md %ok%
pause


   此帖被 +1 点积分    点击查看详情   
评分人:【 w1972 分数: +1  时间:2007-4-30 00:13


2007-4-29 23:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
w1972
新手上路





积分 12
发帖 5
注册 2007-4-29
状态 离线
『第 7 楼』:  

修改系统时间模式的方法早试过了


2007-4-30 00:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
w1972
新手上路





积分 12
发帖 5
注册 2007-4-29
状态 离线
『第 8 楼』:  

还是斑竹高明 bat代码也够强大的了,居然可以 =0替换 谢谢!!!


2007-4-30 00:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
oozic
初级用户





积分 35
发帖 25
注册 2007-11-28
状态 离线
『第 9 楼』:  

Originally posted by lxmxn at 2007-4-29 11:05 PM: 这个应该可以了:
@echo off
set time_=%time: =0%
set ok=%date:~0,4%%date:~5,2%%date:~8,2%%time_:~0,2%%time_:~3,2%
md %ok%
pause
版主 我单位的机器的操作系统都是英文版的,用你这个显示不了YYYYmmddHHssmm.txt 请问有通用版本的dos代码嘛?


2009-4-16 02:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 10 楼』:  

通用的系统日期时间处理会让你的代码变得很臃肿, 至少偶认为是这样,因为各种系统日期时间表示太多样了,要考虑的问题太多了。 等待斑主的好方法




精简 [你的+我的+他的]=>[大家的] 个人网志
2009-4-16 02:16
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
oozic
初级用户





积分 35
发帖 25
注册 2007-11-28
状态 离线
『第 11 楼』:  

我单位的机器的格式是 date /t: Thu 04/16/2009 time /t: 1:16p 这个的格式的,我也正烦呢。 换到现在的中文系统格式全乱了。。。。。


2009-4-16 02:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 12 楼』:  

批处理标准化获取当前系统日期 bbs.bathome.cn/threa ...




2009-4-16 03:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 13 楼』:  

突然想到一个,不知道可行不? 我只有一个系统,哪个帮验证一下,谢谢
@echo off
call :sub time.tmp
echo %ti%
pause
goto :eof

:sub
echo.>%1
set ti=%~t1
del %1




精简 [你的+我的+他的]=>[大家的] 个人网志
2009-4-16 07:21
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 14 楼』:  Re 13楼

这个方法局限性太大了 因为日期中可能包含文件名认为非法的字符(这样的字符实在是太多了)




2009-4-16 10:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 15 楼』:  Re 13楼

还有一点,~ti获取的日期格式跟%date%同样都是取决于注册表中那个键值的设置,仍然无法断定其格式。




2009-4-16 10:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: