本帖最后由 Linux9253 于 2015-7-23 13:43 编辑
问题一:- call :ctime %Systime%.00 %Localtime% t
- :ctime <begin_time> <end_time> <return>
- setlocal
- for /f "tokens=1-6 delims=:" %%a in ("%1:%2")do ( set/a "sm=2%%e-1%%b,ss=2%%~nf-1%%~nc")
- if %ss% lss 100 set/a ss+=60,sm-=1
- if %sm% lss 100 set/a sm+=60,sh-=1
- set F=%sm:~-2% & set M=%ss:~-2%
- if %M:~0,1% == 0 (set M=%M:~1%) else (set M=%M%)
- if %F:~0,1% == 0 (set F=%F:~1%) else (set F=%F%)
- endlocal&set /a %3=%F%*60+%M%
- if %t% gtr 15 echo # > %hqlopwd%\count.log & start "cmd /c" %0 && exit
复制代码 上面是代码的一部分/是计算两个时间差的,也可一正常运行,问题出在最后一句的后面,“%0”,
本来我是想当条件达到里就重新打开一个新的“自己”,然后退出老的“自己”,但但加上这段代码之后就不行了,
提示找不到ctime文件,这个时候%0可能还是ctime函数的环境吧,求大神帮忙解决,当然也可以重新写一个计算时间差的脚本,
最好不要用延迟变量。
问题二: 重点
这是又一个问题,脚本是goto实现的循环,但不知到为什么总会自动结束,出现下面信息,请问这是什么情况。
脚本太大,goto太多,所以就不贴代码了,
****** B A T C H R E C U R S I O N exceeds STACK limits ******
Recursion Count=1240, Stack Usage=90 percent
****** B A T C H PROCESSING IS A B O R T E D ******
问题三:- set j=0 & type %Errlog% | findstr /i "警告: 警告:">nul && (color 4e &for /f "delims=" %%i in (%Errlog%) do (
- set /a j+=1
- set con!j!=%%i
- call set a=%%con!j!%%
- start %Localpwd%\ring.vbs
- MSG %username% /time:5 !a!
- color 4e&ping 127.1>nul
- goto start
复制代码 脚本把收集过来的错误信息导出到指定文件,然后检测文件里是否有错误信息,有的话就把里面的错误信息以弹窗的形式
展示出来,如果文件里只有一行错误信息,上面这段代码是可以的正确弹出信息的,但如果有多行的话,会先弹出第一行,
等第一行关闭了,才会弹出下一行,一次类推。。。求大神帮忙,怎么一下子弹出来多行,并且要加上换行的效果。 |