找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24426|回复: 4

[文本处理] [已解决]批处理文件内容怎么样只跳出一个for循环

[复制链接]
发表于 2011-11-14 22:27:49 | 显示全部楼层 |阅读模式
本帖最后由 wxr0514 于 2011-11-15 21:43 编辑

里面替换内容的部分是没问题了,现在是想批量处理txt文件,试不出来,菜鸟每走一步都好难呀
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%t in (*.txt) do (

  3. for /f "skip=4 tokens=2 delims=|" %%i in ("%%t")  do (
  4. set baodanghao=%%i

  5. for /f "delims="  %%x in ("%%t") do (
  6. set newtxt=%%x
  7. for %%n in (!baodanghao!) do set newtxt=!newtxt:%%n=000000123!
  8. echo !newtxt!>>c.txt
  9. )
  10. move /y c.txt "%%t"
  11. pause
  12. goto :eof
  13. )
  14. )
复制代码

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-11-14 22:41:27 | 显示全部楼层
你到底想表达什么?我想没多少人有耐心慢慢看代码猜楼主的意图
 楼主| 发表于 2011-11-14 22:52:05 | 显示全部楼层
回复 2# CrLf


    截取txt文件里的一个字段,字段出现的第一个位置在"skip=4 tokens=2 delims=|",替换文件中所有的该字段为000000123,我试了后只能修改一个txt文件,不能批处理一个目录下的所有txt文件,因为goto :eof就直接跳出了,有什么方法只是跳出一个for循环呢
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%t in (*.txt) do (
  3. set txt=%%~nxt

  4. for /f "skip=4 tokens=2 delims=|" %%i in (!txt!)  do (
  5. set baodanghao=%%i

  6. for /f "delims="  %%x in (!txt!) do (
  7. set newtxt=%%x
  8. for %%n in (!baodanghao!) do set newtxt=!newtxt:%%n=000000123!
  9. echo !newtxt!>>c.txt

  10. )
  11. move /y c.txt !txt!
  12. pause
  13. goto :eof
  14. )
  15. )
复制代码
发表于 2011-11-14 23:08:52 | 显示全部楼层
回复 3# wxr0514


    请把具体要求更新到顶楼...
    for 循环无法打断,但循环过程中可以用变量控制操作的流程,比如:
  1. @echo off
  2. for /l %%a in (1 1 5) do (
  3.     set str=
  4.     for /l %%b in (1 1 100) do (
  5.         if not defined str echo 第 %%a 轮外循环,第 %%b 轮内循环
  6.         if %%a==%%b set str=.
  7.     )
  8. )
  9. pause
  10. ::内外循环明明共有 5*100 轮,为什么只显示了 1+2+3+4+5 轮呢?因为在不同的轮次中,依据 str 变量的状态来判断是否应该输出
复制代码
 楼主| 发表于 2011-11-15 21:42:13 | 显示全部楼层
回复 4# CrLf


    谢了,按照你的方式执行成功了
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%t in (*.txt) do (
  3. set txt=%%~nxt
  4. set str=

  5.         for /f "skip=4 tokens=2 delims=|" %%i in (!txt!)  do (
  6.         set baodanghao=%%i
  7.         if not defined str (       
  8.                          for /f "delims="  %%x in (!txt!) do (
  9.                         set newtxt=%%x
  10.                         for %%n in (!baodanghao!) do set newtxt=!newtxt:%%n=000000123!
  11.                         echo !newtxt!>>c.txt
  12.                         )
  13.                         move /y c.txt !txt!
  14.         )
  15.         set str=1
  16.         )
  17. )
  18. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 06:52 , Processed in 0.020439 second(s), 12 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表