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

[文本处理] [已解决]批处理怎样替换文件某些字段?

[复制链接]
发表于 2011-11-13 21:41:45 | 显示全部楼层 |阅读模式
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "skip=4 tokens=2,2 delims=|" %%i in (Data201110090064011.txt) do (
  3. set baodanghao=%%i
  4. for /f "delims="  %%x in (Data201110090064011.txt) do (
  5. set newtxt=%%x

  6. set newtxt=!newtxt: baodanghao=000000123!
  7. echo !newtxt!>>c.txt
  8. )
  9. move c.txt Data201110090064011.txt
  10. pause
  11. goto :eof
  12. )
  13. PAUSE
复制代码
为什么替换不成功呢,第一个for是把搜索到的第一个字段给baodanghao, 第二个for 是文件里字段与baodanghao值一样的字段用000000123的字段代替。本来想这样能替换成功后,再想办法批量处理文件,因为这里还只是特定的一个文件

评分

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

查看全部评分

发表于 2011-11-13 22:12:24 | 显示全部楼层
回复 1# wxr0514
请将代码用括起来,配合论坛管理。

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "skip=4 tokens=2 delims=|" %%i in (Data201110090064011.txt) do (
  3. set baodanghao=%%i
  4. for /f "delims="  %%x in (Data201110090064011.txt) do (
  5. set newtxt=%%x
  6. for %%n in (!baodanghao!) do set newtxt=!newtxt:%%n=000000123!
  7. echo !newtxt!>>c.txt
  8. )
  9. move /y c.txt Data201110090064011.txt
  10. pause
  11. goto :eof
  12. )
复制代码

评分

参与人数 1PB +5 技术 +1 收起 理由
CrLf + 5 + 1 乐于助人,同时感谢维护论坛秩序

查看全部评分

发表于 2011-11-13 22:17:49 | 显示全部楼层
检查这个:

  1. set newtxt=!newtxt: baodanghao=000000123!
复制代码
发现问题了吗?

评分

参与人数 1PB +5 收起 理由
CrLf + 5 指明关键所在

查看全部评分

 楼主| 发表于 2011-11-13 22:25:12 | 显示全部楼层
回复 2# weichenxiehou


    可行了,真牛!呵呵我是初学者,今天想了一天都解决不了,佩服。
 楼主| 发表于 2011-11-13 22:28:11 | 显示全部楼层
回复 3# abcdshenji


    这样系统是把“baodanghao"当做字符串而不是变量,本来也试过把baodanghao两边加上%,也不行,
发表于 2011-11-13 22:38:41 | 显示全部楼层
回复 5# wxr0514


    你还是没发现问题。baodanghao还在第一层for里面加%当然不行。。
 楼主| 发表于 2011-11-14 20:07:37 | 显示全部楼层
回复 6# abcdshenji


    这么说变量只能在哪个for里设定的就只能在哪个for里面用了,原来我是用C语言的思维来思考的,变量只要设定了就都可以用了
发表于 2011-11-15 16:52:47 | 显示全部楼层
set newtxt=!newtxt: baodanghao=000000123!

改为
  1. call set newtxt=%%newtxt: !baodanghao!=000000123%%
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 06:51 , Processed in 0.029855 second(s), 13 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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