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

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

本帖最后由 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. )
复制代码
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

你到底想表达什么?我想没多少人有耐心慢慢看代码猜楼主的意图

TOP

回复 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. )
复制代码

TOP

回复 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 变量的状态来判断是否应该输出
复制代码

TOP

回复 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
复制代码

TOP

返回列表