[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

【练习-030】批处理计算程序运行次数

出题目的:
  1、通过解题掌握改写文本技巧
  2、通过解题加强对defined特性的理解
  3、通过解题提高综合运用能力
加分原则:
  1、完善代码加分15分 
  2、其中思路独特基分5分
  3、其中无临时文件基分4分(解题的重要技巧)
  4、其中代码高效基分3分
  5、其中代码简洁基分2分
  6、其中不使用变量延迟基分1分
题目如下:
  要求用纯批处理记录本身运行次数,并在运行时进行提示。如:运行第一次时无提
示,运行第二次时提示已经运行了一次。请在解题时尽量不要使用变量延迟(并不是
不能使用)。
个人请求:
  请版主级会员暂缓贴代码,给新人一段独立思考的时间
总结下:
       通过大家的踊跃跟贴,本题基本得到圆满解决,本人总结了各人的代码分类如下:
       1、通过改写批处理本身来记录运行次数,见4、5、15、28楼的代码,思路都是将运
行次数每次改写到批处理的第一行且均用::来使批处理忽略运行本行代码,这也是大家都认
可的方案;
       2、通过向批处理本身追加数据来记录运行次数,见31、35、36楼的代码,思路都是将
运行次数每次追加到批处理的最后一行,缺点是会让批处理本身越来越大,同时原批处理最
后一行一定要是空行;
       3、通过生成其它文件来记录批处理运行次数,见33楼的代码,思路是将批处理运行的
次数写入其它文件,并每次运行时从记载数据的文件读取一次数据,缺点就是要另处生成临
时文件;
       4、将运行次数记录并写入注册表,在本贴中仍未见相关代码,思路是将批处理支行的
次数当成数据写入注册表的新建项,并在每次运行时从注册表该项中读取一次数据,缺点对
注册表如果不是很熟悉将会造成未知的系统错误。
***共同提高***

两位出手不可谓不快,但是否这样等于剥夺了新人们独立思考的机会呢?所以暂时全部
屏蔽。。。

[ 本帖最后由 batman 于 2008-10-23 17:05 编辑 ]
***共同提高***

TOP

原帖由 随风 于 2008-10-23 17:10 发表
一看到有 batman 的回帖就估计是批评我们的了。。 ^_^
不过此题,说难不难,说易也不易,下次出题能否声明一下针对人群呢?

真的是对不起,本人是一边做报表一边出的题,终于还是有所遗漏:没能事先做出声明。
是本人的错,请各位见谅了。。。
***共同提高***

TOP

———期望的身影(致新人)
我亲爱的朋友们,
你们可曾知道?
我是多么的渴望:
渴望触碰你们活跃的思想
渴望聆听你们讨论的声音
渴望拜读你们个性的文章
于是,我发出诚心的请柬
在等待中默默守望。。。
等待依然是那样的漫长
看到的还是熟悉的脸庞
无数次声音在心中响起:
算了吧,你还是将此遗忘
可为了你们,我还是毅然如常
但,我亲爱的人们啊
不要总叫我苦苦思量
不要总让我次次失望
叫我听到你们的声音
叫我看到你们的模样
叫我感到你们的成长
要知道
你们的身影是我最长的期望。。。
2

评分人数

***共同提高***

TOP

给出本人的解了

  1. ::0
  2. @echo off
  3. set /p num=<%~fs0
  4. set "num=%num:~2%"
  5. if %num% neq 0 echo.&echo 程序已运行了%num%次
  6. set /a num+=1&pause>nul
  7. for /f "delims=" %%i in (%~fs0) do (
  8.     if not defined flag (
  9.        echo ::%num%>%~fs0&set "flag=a"
  10.        ) else (
  11.        echo %%i>>%~fs0
  12.     )
  13. )
复制代码
***共同提高***

TOP

原帖由 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
...

不合题意,不合要求!
***共同提高***

TOP

原帖由 mkl 于 2008-10-24 22:52 发表
@echo off
if not exist time echo 0>time
set/p a=time
pause

echo 0>time只会生成一个空文件
***共同提高***

TOP

返回列表