『第
12 楼』:
没办法,只有一步一步来,先来处理时间登记及时间加密:
以下批处理生成一个 datetime.log 的文本文件(看引用部分),这一串字符串是这样排列的:
运行时间,随机密码,一段时间起,一段时间终,二段时间起,二段时间终,三段时间起,三段时间终
上面各段时间,全部都加上随机密码后写入 datetime.log 文件的。
@echo off
set hour=%time:~0,2%
set minute=%time:~3,2%
set second=%time:~6,2%
set t6=%hour%%minute%%second%
set /a p5=%random:~0,1%%random:~0,1%%random:~0,1%%random:~0,1%%random:~0,1%
set /a t6p5=%t6%+%p5%
>datetime.log set /p=%t6p5%<nul
>>datetime.log set /p=%p5%<nul
set _one=100000
set one_=113000
set _two=140000
set two_=170000
set _three=200000
set three_=220000
set /a p5_one=%_one%+%p5%
set /a p5one_=%one_%+%p5%
set /a p5_two=%_two%+%p5%
set /a p5two_=%two_%+%p5%
set /a p5_three=%_three%+%p5%
set /a p5three_=%three_%+%p5%
>>datetime.log set /p=%p5_one%<nul
>>datetime.log set /p=%p5one_%<nul
>>datetime.log set /p=%p5_two%<nul
>>datetime.log set /p=%p5two_%<nul
>>datetime.log set /p=%p5_three%<nul
>>datetime.log set /p=%p5three_%<nul
for /f %%a in (datetime.log) do set string=%%a
echo 加密文本:%string%
set /a password=%string:~6,5%
echo 密码文本:%password%
set /a runtime=%string:~0,6%-%string:~6,5%
echo 执行时间:%runtime:~0,2%:%runtime:~2,2%:%runtime:~4,2%
set /a one1=%string:~11,6%-%string:~6,5%
set /a one2=%string:~17,6%-%string:~6,5%
echo 第一阶段:%one1:~0,2%:%one1:~2,2%:%one1:~4,2%-%one2:~0,2%:%one2:~2,2%:%one2:~4,2%
set /a two1=%string:~23,6%-%string:~6,5%
set /a two2=%string:~29,6%-%string:~6,5%
echo 第二阶段:%two1:~0,2%:%two1:~2,2%:%two1:~4,2%-%two2:~0,2%:%two2:~2,2%:%two2:~4,2%
set /a three1=%string:~35,6%-%string:~6,5%
set /a three2=%string:~41,6%-%string:~6,5%
echo 第三阶段:%three1:~0,2%:%three1:~2,2%:%three1:~4,2%-%three2:~0,2%:%three2:~2,2%:%three2:~4,2%
:: ping -n 60 127.1>nul
pause 以下是批处理的执行结果,每机子的执行结果与下列数据是绝对不同的。
Quote: | 加密文本:22154011121111121124121151121181121211121231121
密码文本:11121
执行时间:21:04:19
第一阶段:10:00:00-11:30:00
第二阶段:14:00:00-17:00:00
第三阶段:20:00:00-22:00:00
请按任意键继续. . . |
|
问题来了:
因为记录的时间段都是6位,如果是处理10点前的时间,原因是这个6位数前面是0的关系如何对加减运算处理好?况且这些时间还要以6位数的形式写入到 datetime.log 文件内的。
请教各位如何改进好呢?
[ Last edited by chishingchan on 2008-4-8 at 10:42 PM ]
|