标题: [文件操作] [已解决]批处理多文件循环读取 [打印本页]
作者: hackf 时间: 2009-10-9 13:04 标题: [已解决]批处理多文件循环读取
- @echo off & setlocal enabledelayedexpansion
-
- for /f "delims=" %%i in (a.txt) do (
-
- for /f "delims=" %%a in ('findstr /n .* b.txt') do (
- ...........................................................
复制代码
问题是把b.txt 的b 设置成变量,运行开始时,b是1,既1.txt ,一共有9个txt 既:1.txt 2.txt 3.txt......9.txt ,9.txt读完,就回到1.txt开始读取.
还有一个问题是在for 能不能延时,就是停1秒钟这样
[ 本帖最后由 hackf 于 2009-10-10 15:11 编辑 ]
作者: asnahu 时间: 2009-10-9 15:17 标题: 回复 1楼 的帖子
兄台,总共才九个文件,批处理有点来浪费。
作者: hackf 时间: 2009-10-9 15:28
原帖由 asnahu 于 2009-10-9 15:17 发表
兄台,总共才九个文件,批处理有点来浪费。
哈,到时要的话,再加了,主要是怎么判断已经到第9个了,然后再去读取1.txt
作者: keen 时间: 2009-10-9 17:13
无限循环:
- @echo off
- :lp
- for /l %%i in (1 1 9) do (
- for /f "delims=" %%a in ('findstr /n .* %%i.txt') do echo %%a
- )
- goto lp
- pause
复制代码
作者: hackf 时间: 2009-10-9 21:06
呜呜,不懂怎么用进去,不过还是很谢谢楼上的。能不能帮我写个当b等于10时,减10 。如果小于10就跳过,批处理要怎么写,因为这样也可以达到我的目的
[ 本帖最后由 hackf 于 2009-10-10 07:40 编辑 ]
作者: vsbat 时间: 2009-10-10 10:23
- @echo off
- setlocal enabledelayedexpansion
- set b=1
- :u
- for /f %%i in ('findstr/n .* !b!.txt') do (echo ok!b!&set /a b=!b!+1&ping -n 1 127.0.0.1>nul)
- if !b!==10 (set b=1
- goto u) else (goto u)
复制代码
实现效果:依次读取 1到9.txt---到9.txt 后返回 1.txt 继续读取
LZ do 后面 & 符号之前的命令你要自己设定了,set /a b=!b!+1是必备的不可少---
有 延时 了 ping 延时 1 秒
不知代码是否是你想要的
作者: hackf 时间: 2009-10-10 11:52
整个代码是这样的- @echo off & setlocal enabledelayedexpansion
- set m=1
- ................
- set /a m+=1 问题:当M大于9时,设m=1
-
- exit
复制代码
[ 本帖最后由 hackf 于 2009-10-10 15:10 编辑 ]
作者: zqz0012005 时间: 2009-10-10 12:33
set /a b+=1, b%%=10
作者: hackf 时间: 2009-10-10 15:07
原帖由 zqz0012005 于 2009-10-10 12:33 发表
set /a b+=1, b%%=10
哈,谢谢,偶从0.txt开始就OK了
作者: zqz0012005 时间: 2009-10-10 18:31 标题: 回复 9楼 的帖子
汗。。。其实我没仔细看,缺省认为你就是从0开始的。
从1开始
set /a b+=1, b=b%%10+1
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |