标题: [文本处理] [已解决]批处理怎样替换文件某些字段? [打印本页]
作者: wxr0514 时间: 2011-11-13 21:41 标题: [已解决]批处理怎样替换文件某些字段?
- @echo off&setlocal enabledelayedexpansion
- for /f "skip=4 tokens=2,2 delims=|" %%i in (Data201110090064011.txt) do (
- set baodanghao=%%i
- for /f "delims=" %%x in (Data201110090064011.txt) do (
- set newtxt=%%x
-
- set newtxt=!newtxt: baodanghao=000000123!
- echo !newtxt!>>c.txt
- )
- move c.txt Data201110090064011.txt
- pause
- goto :eof
- )
- PAUSE
复制代码
为什么替换不成功呢,第一个for是把搜索到的第一个字段给baodanghao, 第二个for 是文件里字段与baodanghao值一样的字段用000000123的字段代替。本来想这样能替换成功后,再想办法批量处理文件,因为这里还只是特定的一个文件
作者: weichenxiehou 时间: 2011-11-13 22:12
回复 1# wxr0514
请将代码用括起来,配合论坛管理。- @echo off&setlocal enabledelayedexpansion
- for /f "skip=4 tokens=2 delims=|" %%i in (Data201110090064011.txt) do (
- set baodanghao=%%i
- for /f "delims=" %%x in (Data201110090064011.txt) do (
- set newtxt=%%x
- for %%n in (!baodanghao!) do set newtxt=!newtxt:%%n=000000123!
- echo !newtxt!>>c.txt
- )
- move /y c.txt Data201110090064011.txt
- pause
- goto :eof
- )
复制代码
作者: abcdshenji 时间: 2011-11-13 22:17
检查这个:- set newtxt=!newtxt: baodanghao=000000123!
复制代码
发现问题了吗?
作者: wxr0514 时间: 2011-11-13 22:25
回复 2# weichenxiehou
可行了,真牛!呵呵我是初学者,今天想了一天都解决不了,佩服。
作者: wxr0514 时间: 2011-11-13 22:28
回复 3# abcdshenji
这样系统是把“baodanghao"当做字符串而不是变量,本来也试过把baodanghao两边加上%,也不行,
作者: abcdshenji 时间: 2011-11-13 22:38
回复 5# wxr0514
你还是没发现问题。baodanghao还在第一层for里面加%当然不行。。
作者: wxr0514 时间: 2011-11-14 20:07
回复 6# abcdshenji
这么说变量只能在哪个for里设定的就只能在哪个for里面用了,原来我是用C语言的思维来思考的,变量只要设定了就都可以用了
作者: Hello123World 时间: 2011-11-15 16:52
set newtxt=!newtxt: baodanghao=000000123!
改为- call set newtxt=%%newtxt: !baodanghao!=000000123%%
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |