标题: 如何将文本第二行中的034替换成34
[打印本页]
作者: lokilu
时间: 2008-2-24 23:24
标题: 如何将文本第二行中的034替换成34
有这样的一个文件,它的第二行中有一个数值为0344499084,现在想将34前面的0去掉,此数值有可能在下面的其他行中也有,但只需要将第二行中的数据034替换成34就可以了,请高手指导一下问如何写这样的批处理。万分感谢!
作者: fastslz
时间: 2008-2-24 23:48
@echo off
>test.txt echo 0344499084一
>>test.txt echo 0344499084二
>>test.txt echo 0344499084三
for /f "tokens=1,2* delims=:" %%i in ('type "test.txt"^|findstr /b /n "034"') do (
if "%%i"=="2" set "str=%%j"
)
set "str=%str:034=34%"
echo %str%
pause
缺陷0344499034二会有问题
作者: lokilu
时间: 2008-2-25 00:19
首先谢谢fastslz热情帮助,刚刚我测试一下,好象有问题,我只是想将文本中第二行中034的数值改成34就可以了,不需要改更其他地方的数值。谢谢你的帮助!
作者: lxmxn
时间: 2008-2-25 00:48
@echo off & Setlocal EnableDelayedExpansion
for /f "tokens=1* delims=:" %%i in ('findstr /n .* test.txt') do (
set string=%%j
if "%%i"=="2" (set string=!string:034=34!)
>>new-file.txt echo\!string!
)
start notepad new-file.txt
作者: lokilu
时间: 2008-2-25 18:26
lxmxn,谢谢您的帮助,可能是我没有表达清楚,我的需求是这样的,当前我只需要去掉某一类文本文件中某一行的某一个数值前的“0”,例如我想去掉下面文本文件第二行中034前面的“0”,其他地方(第三行及第四中034)如有相同的数据不能修改,并且其他数据也不变。谢谢!
HDR^001247546^7123192419^N^20080101^763747^20080102^OOCL
PPL^826694001^0504^HKGSHA0129^0341510257
CTN^14^0349284015373506889^10^000^0000^0000^0000^0000
CTN^14^03469284015373506889^10^000^0000^0000^0000^0000
作者: lxmxn
时间: 2008-2-26 01:15
如果你连别人写的代码测试都不测试一下的话,那我也没办法再去看你的问题了。
作者: AlexZhang
时间: 2008-2-26 01:26
正则表达式
作者: fastslz
时间: 2008-2-26 09:34
这种帖子简直浪费人力和精力~
作者: lokilu
时间: 2008-2-26 16:46
对不起各位,让各位误解了,之前我有做过测试,可能是我测试的数据源有问题,所以导致测试结果不对,因而我误认为此脚本有问题,真是对不起lxmxn,我刚刚再次测试一下,非常顺利,谢谢各位帮忙!