标题: [文本处理] 批处理怎样对重启次数进行计数? [打印本页]
作者: jiayt 时间: 2009-12-21 16:54 标题: 批处理怎样对重启次数进行计数?
我现在DOS下连续运行重启,想加入一个自动计数功能,就是重启一次就在某个文档里更新重启次数,请问用批处理能实现么?请高手不吝赐教,给个代码,谢谢!
作者: 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,你照着改下就是了。
作者: 523066680 时间: 2009-12-21 18:09
好像以前几个人问过,还有的帖子讨论过,搜搜可能有更多的~
作者: jiayt 时间: 2009-12-21 18:42
原帖由 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下运行的,请问这是什么原因?谢谢!
作者: zhiyanzhai33 时间: 2009-12-21 19:30
试着写了一段,把 :end 标签中的内容换成重启就行:- @echo off
- if not exist count.txt (
- call :first
- ) else (
- for /f "delims=, tokens=2" %%i in (count.txt) do (
- call set /a a=%%i
- call :add
- )
- )
- goto :end
- :first
- set /a a=1
- echo ",%a%,">count.txt
- goto :eof
- :add
- set /a a+=1
- echo ",%a%,">count.txt
- goto :eof
- :end
- echo hello world
- echo %a%
- pause
- exit
复制代码
[ 本帖最后由 zhiyanzhai33 于 2009-12-22 15:41 编辑 ]
作者: zhiyanzhai33 时间: 2009-12-21 19:31
怎么代码粘贴区域中不支持缩进么?新来的疑惑?
作者: keen 时间: 2009-12-21 19:35
在纯DOS下,很多命令都没有。
作者: pumahxh 时间: 2009-12-21 22:13 标题: 回复楼主
你在纯dos下可能能for /f这样的命令都不支持,要得到帮助,请先说明你的dos系统是什么版本,可输入命令ver查询。
作者: Batcher 时间: 2009-12-21 23:10 标题: 回复 6楼 的帖子
请现在记事本或者其他编辑器里面设置好缩进,再复制到代码粘贴区域。
作者: abxialiang 时间: 2010-1-8 15:59 标题: 回复 4楼 的帖子
我在ghost版的xp下运行正常。不是在纯dos状态下。你出现的问题我就不知道了。稍微改了下命令方式,可能不能解决你的问题,你换台电脑试试看行不行,我测试过的- @echo off
- setlocal EnableDelayedExpansion
- if not exist a.txt echo a=1 >a.txt
- for /f %%i in ('type a.txt') do (
- echo %%i
- set /a %%i+1
- echo a=!a!>a.txt
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |