替换文本指定行数里,=号之后的内容,该怎么写这批处理?

比如文本内容为:文本名1.txt[abc]abcde=12345bcde=2345qwe=345我想第四行qwe=345,替换成qwe=543.for/f"skip=3"... 比如文本内容为:
文本名 1.txt

[abc]

abcde=12345
bcde=2345
qwe=345

我想第四行qwe=345, 替换成 qwe=543.

for /f "skip=3" %%i in (1.txt) do (
set/a n+=1
if !n! equ 4

这之后我就不知道该怎么写下去了,请高手指点下啊...
这个345不是一个固定值.但qwe=是一个固定的值.
请指教下.
展开
 我来答
jd08139
2013-10-17 · TA获得超过3736个赞
知道大有可为答主
回答量:2174
采纳率:66%
帮助的人:2920万
展开全部
@Echo Off&Setlocal Enabledelayedexpansion
for /f "tokens=1* delims==" %%i in (1.txt) do (
set/a n+=1
(if !n! equ 4 (Echo %%i=456) else (If not "%%j"=="" (Echo %%i=%%j) else (Echo %%i)))>>2.txt
)
Pause

qwe=在固定行可以这样写.下面的代码是qwe=在不确定行(qwe=在任意行)

@Echo Off&Setlocal Enabledelayedexpansion
for /f "tokens=1* delims==" %%i in (1.txt) do (
(If "%%i"=="qwe" (Echo %%i=456) else (If not "%%j"=="" (Echo %%i=%%j) else (Echo %%i)))>>2.txt
)
Pause
更多追问追答
追问
没看明白,也不行啊.qwe=确定在一个固定行,但我要修改成的内容不固定是456.
追答
你想要怎样修改呢,用变量?
愈未央2I
2013-10-17 · TA获得超过677个赞
知道小有建树答主
回答量:668
采纳率:50%
帮助的人:495万
展开全部

@echo off

setlocal enabledelayedexpansion

set /p wen=345要换成的内容:

set a=0

for /f "tokens=*" %%i in (1.txt) do (

set /a a+=1

if !a!==4 (

set value=%%i

set "value=!value:345=!"

echo !value!%wen%>>2.txt

) else (echo %%i>>2.txt)

)


  1. 把要替换成的内容输入给变量wen

  2. 遍历1.txt,当a=4时,把第4行内容中的345换成空

  3. 并把剩下的内容和变量wen的内容一起输出到2.txt

  4. else ,a不等于4的情况,则正常输出到2.txt

  5. 不想生成2.txt,调用jd08139的move 2.txt 1.txt加在最后即可(另起一行)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
klainogn
2013-10-17 · TA获得超过130个赞
知道小有建树答主
回答量:435
采纳率:0%
帮助的人:296万
展开全部
@setlocal enabledelayedexpansion
set tgtline=3
set newval=543
set line=0
for /f %%a in (1.txt) do (
set /a line=line+1
if !line!==%tgtline% (
for /f "tokens=1 delims==" %%b in ("%%a") do (
echo %%b=%newval%>>a.tmp
)
) else (
echo %%a>>a.tmp
)
)
copy /y a.tmp 1.txt
del /q a.tmp
当然还有一个更好的工具sed
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式