求批处理修改文本文件,将某段内容替换为空
格式如下:要求将每行的第四段内容替换为空值,如:第1行的1.74,第二行的2.2,第三行的3.94,依此类推,每行的第四段都替换为空值,请问有解决办法吗?000001百事...
格式如下:要求将每行的第四段内容替换为空值,如:第1行的1.74,第二行的2.2,第三行的3.94,依此类推,每行的第四段都替换为空值,请问有解决办法吗?
000001 百事可乐355m 4716 1.74 2 ;
000002 百事可乐500m 2226 2.2 2.5 ;
000003 百事可乐1.25 8 3.94 4.5 ;
000004 百事可乐2L*6 781 5.79 6 ;
000005 百事激浪330m 74 1.93 2.5 ;
000006 百事激浪550m 1123 2.33 3 ;
000007 百事极度330m 59 1.75 2.5 ;
000008 百事极度500m 2.44 3 ;
000009 百事果缤纷热带4 -22 2.33 3 ;
000010 百事美年达葡萄5 1364 2.21 3 ;
000011 B5-40 16 200 1.2 2.8 ;
000012 百事果缤纷金橙香 36 2.33 3 ;
000013 百事果缤纷热带1 291 5.83 6.5 ;
000014 百事果缤纷哈密瓜 -6 5.33 6.5 ;
000015 百事果缤纷金橙香 282 5.76 6.5 ;
000016 百事美年达橙味3 3699 1.73 2.5 ;
000017 百事美年达葡萄3 295 1.73 2.5 ;
000018 百事美年达橙味5 595 2.21 3 ;
000019 百事美年达青苹果 122 2.21 3 ;
000021 百事七喜355m 9544 1.61 2.5 ;
000022 百事七喜500m -8 2.19 3 ;
000023 可口可乐330m 4683 1.72 2.5 ;
000024 可口可乐500m 583 2.1 3 ;
000025 可口可乐2.5L 109 3.85 6 ;
000026 可口醒目西瓜35 -15 1.71 2.5 ;
补充一下问题,每一行都有符合一个规则,规则如下:
每一行的第53个字符至第65个字符就是第四段内容,只要将第53至65个字符替换为0.0000就可以了。 展开
000001 百事可乐355m 4716 1.74 2 ;
000002 百事可乐500m 2226 2.2 2.5 ;
000003 百事可乐1.25 8 3.94 4.5 ;
000004 百事可乐2L*6 781 5.79 6 ;
000005 百事激浪330m 74 1.93 2.5 ;
000006 百事激浪550m 1123 2.33 3 ;
000007 百事极度330m 59 1.75 2.5 ;
000008 百事极度500m 2.44 3 ;
000009 百事果缤纷热带4 -22 2.33 3 ;
000010 百事美年达葡萄5 1364 2.21 3 ;
000011 B5-40 16 200 1.2 2.8 ;
000012 百事果缤纷金橙香 36 2.33 3 ;
000013 百事果缤纷热带1 291 5.83 6.5 ;
000014 百事果缤纷哈密瓜 -6 5.33 6.5 ;
000015 百事果缤纷金橙香 282 5.76 6.5 ;
000016 百事美年达橙味3 3699 1.73 2.5 ;
000017 百事美年达葡萄3 295 1.73 2.5 ;
000018 百事美年达橙味5 595 2.21 3 ;
000019 百事美年达青苹果 122 2.21 3 ;
000021 百事七喜355m 9544 1.61 2.5 ;
000022 百事七喜500m -8 2.19 3 ;
000023 可口可乐330m 4683 1.72 2.5 ;
000024 可口可乐500m 583 2.1 3 ;
000025 可口可乐2.5L 109 3.85 6 ;
000026 可口醒目西瓜35 -15 1.71 2.5 ;
补充一下问题,每一行都有符合一个规则,规则如下:
每一行的第53个字符至第65个字符就是第四段内容,只要将第53至65个字符替换为0.0000就可以了。 展开
4个回答
展开全部
将上面内容 复制 到 WORD 中选择性(文本)粘贴
选中内容 再转换为表格
再把相应的列给册除,再 复制 回来
(注意这行异常 000011 B5-40 16 200 1.2 2.8 ;
)
000001 百事可乐355m 4716 2 ;
000002 百事可乐500m 2226 2.5 ;
000003 百事可乐1.25 8 4.5 ;
000004 百事可乐2L*6 781 6 ;
000005 百事激浪330m 74 2.5 ;
000006 百事激浪550m 1123 3 ;
000007 百事极度330m 59 2.5 ;
000008 百事极度500m 2.44 ;
000009 百事果缤纷热带4 -22 3 ;
000010 百事美年达葡萄5 1364 3 ;
000011 B5-40 16 1.2 2.8 ;
000012 百事果缤纷金橙香 36 3 ;
000013 百事果缤纷热带1 291 6.5 ;
000014 百事果缤纷哈密瓜 -6 6.5 ;
000015 百事果缤纷金橙香 282 6.5 ;
000016 百事美年达橙味3 3699 2.5 ;
000017 百事美年达葡萄3 295 2.5 ;
000018 百事美年达橙味5 595 3 ;
000019 百事美年达青苹果 122 3 ;
000021 百事七喜355m 9544 2.5 ;
000022 百事七喜500m -8 3 ;
000023 可口可乐330m 4683 2.5 ;
000024 可口可乐500m 583 3 ;
000025 可口可乐2.5L 109 6 ;
000026 可口醒目西瓜35 -15 2.5 ;
选中内容 再转换为表格
再把相应的列给册除,再 复制 回来
(注意这行异常 000011 B5-40 16 200 1.2 2.8 ;
)
000001 百事可乐355m 4716 2 ;
000002 百事可乐500m 2226 2.5 ;
000003 百事可乐1.25 8 4.5 ;
000004 百事可乐2L*6 781 6 ;
000005 百事激浪330m 74 2.5 ;
000006 百事激浪550m 1123 3 ;
000007 百事极度330m 59 2.5 ;
000008 百事极度500m 2.44 ;
000009 百事果缤纷热带4 -22 3 ;
000010 百事美年达葡萄5 1364 3 ;
000011 B5-40 16 1.2 2.8 ;
000012 百事果缤纷金橙香 36 3 ;
000013 百事果缤纷热带1 291 6.5 ;
000014 百事果缤纷哈密瓜 -6 6.5 ;
000015 百事果缤纷金橙香 282 6.5 ;
000016 百事美年达橙味3 3699 2.5 ;
000017 百事美年达葡萄3 295 2.5 ;
000018 百事美年达橙味5 595 3 ;
000019 百事美年达青苹果 122 3 ;
000021 百事七喜355m 9544 2.5 ;
000022 百事七喜500m -8 3 ;
000023 可口可乐330m 4683 2.5 ;
000024 可口可乐500m 583 3 ;
000025 可口可乐2.5L 109 6 ;
000026 可口醒目西瓜35 -15 2.5 ;
追问
谢谢你方法,这个操作我也会,我是想用一个批处理文件,将这个文本文件中的内容批量替换,简化操作,谢谢你的提供的方法,不过不合适我用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假定要处理的源文件是data.txt
处理后的目标文本是data2.txt
另外经观察
样例文本中的第四段内容不在你说的53~65个字符
而在每行的68~71列(与字符数无关)
所以代码略作调整如下:
@echo off & setlocal EnableDelayedExpansion
(for /f "delims=" %%l in (data.txt) do (
set 每一行=%%l
setlocal
for /l %%i in (0,1,85) do if not "!每一行:~%%i,1!"=="" (
set 当前字符=!每一行:~%%i,1!
if !列号! lss 65 set 前半行=!前半行!!当前字符!
if !列号! gtr 70 set 后半行=!后半行!!当前字符!
rem 如果当前列是中文则列号加2,否则是英文和数字,列号加1
if "!当前字符!" gtr "z" (set /a 列号+=2) else (set /a 列号+=1)
)
echo !前半行!0.0000!后半行!
endlocal
)) > data2.txt
pause
处理后的目标文本是data2.txt
另外经观察
样例文本中的第四段内容不在你说的53~65个字符
而在每行的68~71列(与字符数无关)
所以代码略作调整如下:
@echo off & setlocal EnableDelayedExpansion
(for /f "delims=" %%l in (data.txt) do (
set 每一行=%%l
setlocal
for /l %%i in (0,1,85) do if not "!每一行:~%%i,1!"=="" (
set 当前字符=!每一行:~%%i,1!
if !列号! lss 65 set 前半行=!前半行!!当前字符!
if !列号! gtr 70 set 后半行=!后半行!!当前字符!
rem 如果当前列是中文则列号加2,否则是英文和数字,列号加1
if "!当前字符!" gtr "z" (set /a 列号+=2) else (set /a 列号+=1)
)
echo !前半行!0.0000!后半行!
endlocal
)) > data2.txt
pause
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的大概可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这是用的什么软件?
追问
这是一个文本文件,里面的内容要批量修改。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询