batman 当前离线
考官
荣誉版主
总结下: 通过大家的踊跃跟贴,本题基本得到圆满解决,本人总结了各人的代码分类如下: 1、通过改写批处理本身来记录运行次数,见4、5、15、28楼的代码,思路都是将运 行次数每次改写到批处理的第一行且均用::来使批处理忽略运行本行代码,这也是大家都认 可的方案; 2、通过向批处理本身追加数据来记录运行次数,见31、35、36楼的代码,思路都是将 运行次数每次追加到批处理的最后一行,缺点是会让批处理本身越来越大,同时原批处理最 后一行一定要是空行; 3、通过生成其它文件来记录批处理运行次数,见33楼的代码,思路是将批处理运行的 次数写入其它文件,并每次运行时从记载数据的文件读取一次数据,缺点就是要另处生成临 时文件; 4、将运行次数记录并写入注册表,在本贴中仍未见相关代码,思路是将批处理支行的 次数当成数据写入注册表的新建项,并在每次运行时从注册表该项中读取一次数据,缺点对 注册表如果不是很熟悉将会造成未知的系统错误。
TOP
原帖由 随风 于 2008-10-23 17:10 发表 一看到有 batman 的回帖就估计是批评我们的了。。 ^_^ 不过此题,说难不难,说易也不易,下次出题能否声明一下针对人群呢?
评分人数
::0 @echo off set /p num=<%~fs0 set "num=%num:~2%" if %num% neq 0 echo.&echo 程序已运行了%num%次 set /a num+=1&pause>nul for /f "delims=" %%i in (%~fs0) do ( if not defined flag ( echo ::%num%>%~fs0&set "flag=a" ) else ( echo %%i>>%~fs0 ) )复制代码
原帖由 shqf 于 2008-10-24 21:40 发表 @echo off set name=%~n0 set num=%name:~4% if not "%num%" == "0" (echo 你已经运行本程序%num%次了&&goto count) :count set /a num=%num%+1 copy %0 test%num%.bat>nul echo 欢迎光临 WWW.bathome.net ...
原帖由 mkl 于 2008-10-24 22:52 发表 @echo off if not exist time echo 0>time set/p a=time pause