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

[文本处理] 批处理怎样对重启次数进行计数?

我现在DOS下连续运行重启,想加入一个自动计数功能,就是重启一次就在某个文档里更新重启次数,请问用批处理能实现么?请高手不吝赐教,给个代码,谢谢!

  1. @echo off
  2. if not exist a.txt echo a=1 >a.txt
  3. for /f %%i in ('type a.txt') do (  
  4. echo %%i
  5. set /a %%i+1  
  6. call echo a=%%a%%>a.txt  
  7. )
  8. pause
复制代码
每运行一次都会把记录文件a.txt内容加1,你照着改下就是了。

TOP

好像以前几个人问过,还有的帖子讨论过,搜搜可能有更多的~

TOP

原帖由 abxialiang 于 2009-12-21 18:03 发表
@echo off
if not exist a.txt echo a=1 >a.txt
for /f %%i in ('type a.txt') do (  
echo %%i
set /a %%i+1  
call echo a=%%a%%>a.txt  
)
pause
每运行一次都会把记录文件a.txt内容加1,你照着改下就是 ...


你好,我试着运行了一下,显示:
syntax error
%i
syntax error
bad command or file name
还有a.txt中显示的是a=%a%
我做的重启是在DOS下运行的,请问这是什么原因?谢谢!

TOP

试着写了一段,把 :end 标签中的内容换成重启就行:
  1. @echo off
  2. if not exist count.txt (
  3. call :first
  4.   ) else (
  5. for /f "delims=, tokens=2" %%i in (count.txt) do (
  6.   call set /a a=%%i
  7.   call :add
  8. )
  9. )
  10. goto :end
  11. :first
  12. set /a a=1
  13. echo ",%a%,">count.txt
  14. goto :eof
  15. :add
  16. set /a a+=1
  17. echo ",%a%,">count.txt
  18. goto :eof
  19. :end
  20. echo hello world
  21. echo %a%
  22. pause
  23. exit
复制代码

[ 本帖最后由 zhiyanzhai33 于 2009-12-22 15:41 编辑 ]

TOP

怎么代码粘贴区域中不支持缩进么?新来的疑惑?

TOP

在纯DOS下,很多命令都没有。
(*^_^*)

TOP

回复楼主

你在纯dos下可能能for /f这样的命令都不支持,要得到帮助,请先说明你的dos系统是什么版本,可输入命令ver查询。

TOP

回复 6楼 的帖子

请现在记事本或者其他编辑器里面设置好缩进,再复制到代码粘贴区域。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4楼 的帖子

我在ghost版的xp下运行正常。不是在纯dos状态下。你出现的问题我就不知道了。稍微改了下命令方式,可能不能解决你的问题,你换台电脑试试看行不行,我测试过的
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. if not exist a.txt echo a=1 >a.txt
  4. for /f %%i in ('type a.txt') do (  
  5. echo %%i
  6. set /a %%i+1  
  7. echo a=!a!>a.txt  
  8. )
  9. pause
复制代码

TOP

返回列表