中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 10:22
48,037 主题排行 / 350,122 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 主管布置周一交的任务,望高手相助~DOS.BAT文件改名应用程序
可打印版本  4,171 / 33
第31楼 samzj 发表于 2006-11-06 23:41
初级用户 发帖 14 积分 30
qwe1234567斑竹,运用出现了一个问题,当时间从00:00到09:59时就会出现错误,无法得到任何结果,其余时间段正常...主管跟我说可能是第一个0上出现了问题,请问大概有解决的方法吗...

各位知道的朋友也请讲解下..

:\Documents and Settings\Administrator>date
The current date is: 10/16/2006 Mon
Enter the new date: (mm-dd-yy)

C:\Documents and Settings\Administrator>time
The current time is: 15:56:45.35
Enter the new time:


set a=%date:~10,4%%date:~4,2%%date:~7,2%@%time:~0,2%%time:~3,2%%time:~6,2%
copy c:\test.bat test%a%.bat
第32楼 zh159 发表于 2006-11-06 23:57
金牌会员 发帖 1,467 积分 3,687
%time%方式在00:00到09:59时没有前面的0
利用延迟变量:

setlocal EnableDelayedExpansion
set time$=%time:~0,8%&&set time$=!time$::=!&&set time$=!time$: =0!
set a=%date:~10,4%%date:~4,2%%date:~7,2%@%time$%
copy c:\test.bat test%a%.bat

不用延迟变量:
set time$=%time:~0,8%
set time$=%time$::=%
set time$=%time$: =0%
set a=%date:~10,4%%date:~4,2%%date:~7,2%@%time$%
copy c:\test.bat test%a%.bat
第33楼 samzj 发表于 2006-11-07 00:32
初级用户 发帖 14 积分 30
zxcv:万分感谢,用了第二个的不用延迟变量成功了...
第34楼 zh159 发表于 2006-11-07 04:28
金牌会员 发帖 1,467 积分 3,687
原理:
set time$=%time:~0,8%
获取%time%(“ 9:59:45.35”)前8位,“ 9:59:45”(前第一位小于10时为空格)
set time$=%time$::=%
去处“ 9:59:45”中的“:”冒号:“ 95945”
set time$=%time$: =0%
将“ 95945”中的空格替换为“0”,“095945”
上一页  1 2 3
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023