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

[文本处理] 批处理for语句嵌套使用应该注意些什么?

上次问了一个提取文本特定内容的问题,于是我在此基础上使用for语句,通过提取另一个文本的内容作为判断条件来提取文本,结果要么程序框一闪而过,要么就报delims=" was unexpected at this time,我弄不清是不是使用for语句嵌套需要注意些什么,而我忽略了,还是其他地方出错了,麻烦各位帮我解释一下.
下面代码是我在lumiere给的代码的基础上加了一个for语句
  1. echo off&setlocal enabledelayedexpansion
  2. ::所有判断条件都存放在test.txt文件中
  3. for /f  "delims=" %%a in (test.txt) do (
  4. set var=%%a
  5. set /a count=0
  6. ::target.txt是被提取的文本,
  7. findstr /n "[" target.txt>>num.txt
  8. for /f "tokens=1-2 delims=[]" %%a in (num.txt) do (
  9.     set /a count+=1
  10.     if "%%b"=="!var!" set /a cal=0, skip=count,num=%%a 2>nul
  11. )
  12. for /f "skip=%skip% delims=" %%a in (num.txt) do set /a num2=%%a 2>nul
  13. for /f "skip=%num% delims=" %%i in (target.txt) do (
  14.     echo %%i>>result.txt&set /a cal+=1,comp=cal+num+1
  15.     if !comp! equ !num2! echo 您要的内容已成功提取!&goto end
  16. )
  17. )
  18. :end
  19. pause>nul
复制代码

test.txt内容
tt
abc:\
def@


target.txt内容

[abc:\]
*****
asdgg

[dfg]
lkh

[tt]
lkjj
###

[def@]
kdof还有一个问题就是如果把标号:end放在最后一个)和倒数第二个)之间,运行程序的话,就是程序框一闪而过,为什么会这样呢。拿到goto语句必须完全跳出for语句,仅仅跳出嵌套的for语句不行吗?

[ 本帖最后由 local 于 2009-7-23 11:17 编辑 ]

for语句可以用嵌套
goto语句会完全跳出整个for
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

for语句可以用嵌套吗?

TOP

返回列表