中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 11:39
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 主管布置周一交的任务,望高手相助~DOS.BAT文件改名应用程序 查看 4,178 回复 33
31 发表于 2006-11-06 23:41 ·  中国 上海 嘉定区 电信
初级用户
积分 30
发帖 14
注册 2006-10-15 08:13
19年会员
UID 65835
状态 离线
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 发表于 2006-11-06 23:57 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
%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
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +2 2006-11-07 00:37
33 发表于 2006-11-07 00:32 ·  中国 上海 嘉定区 电信
初级用户
积分 30
发帖 14
注册 2006-10-15 08:13
19年会员
UID 65835
状态 离线
zxcv:万分感谢,用了第二个的不用延迟变量成功了...
34 发表于 2006-11-07 04:28 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
原理:
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 条) 点击查看详情
评分人分数时间
redtek +2 2006-11-07 04:37
论坛跳转: