如何用批处理对指定行的内容进行编辑(写入修改)

比如我有一个文本
1111111111111
2222222222222
3333333333333
我的目标写一个批处理
运行他则实现
把第2行的2222222222222改成hello
也就是变成
1111111111111
hello
3333333333333
不要提示用户输入内容,而是批处理直接运行就直接改成hello
不要用find命令,因为的第二行的内容会不同,我要不管第二行什么内容,都能彻底改掉第二行为我脚本里面写入的内容
感谢朋友的回答,我自己也折腾了一个方法,复杂了点,但可以具体到第几行从第几个字符开始写入,和大家分享一下
@echo off&echo/
set ff=1.txt
set ln=40
set cl=1
set s=new
setlocal enabledelayedexpansion
(for /f "tokens=1* delims=:" %%i in ('type "%ff%"^|findstr/n ".*"'
)do if %%i neq %ln% (echo.%%j)else (set mh="%%j"
set mh=!mh: =" "!
for %%k in (!mh!)do (set/a n+=1
if !n! equ %cl% (set h=!h! %s%)else set "h=!h! %%~k")
echo.!h:~1!))>temp.yky
move temp.yky "%ff%"&echo 处理完成&ping -n 2 127.1>nul
==============
set ln=40 意思是第40行
set cl=1 意思是第一个字符开始
set s=hello 此处为要写入的hello

方法多种多样,这里列举几种简单的方式:

1。打开记事本,输入好批处理代码,点击“文件”,“另存为”,选好位置后在“文件名(N)”框里输入 "批处理文件名.bat" 或 "批处理文件名.cmd" ,注意包括引号在内,这里的引号为半角引号,也就是没开输入法情况下打出的引号。 “批处理文件名”几个字替换成你想要的文件名,bat或cmd是批处理的文件格式后辍。

2。点击左下角“开始”,选择点击“运行”,然后输入
notepad c:\batch.cmd
回车,其中c:\batch.cmd替换成你想要的路径及文件名,当记事本打开时会提示你文件不存在,是否创建,选择是。 然后再输入批处理代码并保存

3。打开MS-DOS(开始,运行,cmd回车;或开始,所有程序,附件,命令提示符), 在命令提示符下打命令
copy con c:\batch.cmd
回车后直接输入批处理代码,当输入完毕后按ctrl+z(先按住ctrl键不松再按一下z键后都松开),回车后这个文件即创建好并已经填充好代码了。

4。此方法需要“文件夹选项”(在资源管理器“文件”菜单里)“查看”标签下的“隐藏已知文件类型的扩展名”前的勾去掉。在需要的位置直接右键,新建,文本文档。 然后打开此文档输入好代码保存退出,然后直接更改此文件为你需要的文件名加.cmd或.bat
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-06
@echo off
(for /f "tokens=1* delims=:" %%a in ('findstr /n "test.txt"') do (
if %%a equ 2 (echo hello) else (echo.%%b)
))>$
move $ "test.txt"

将test.txt第二行改为hello

本回答被提问者采纳
第2个回答  2014-03-23
@echo off&setlocal enabledelayedexpansion&(if exist "tmp" cd.>"tmp")&(for /f "delims=" %%1 in (1.txt)do (set/aadd+=1&if !add!==2 (echo hello)else echo %%1))>"tmp"&move "tmp" "1.txt"

// 尽量不要用外部文件,大文件读取会比较慢

第3个回答  2014-03-21
答得好! 问到莫明其妙的最适当的答案。

bat批处理修改文本文档指定行的内容?
首先鼠标右键单击电脑桌面,选择新建一个文本文档。进入win10桌面以后,右击桌面空白处,然后选择【新建】,然后找到并且点击【文本文档】。双击文本文档,进入文本文档界面输入hostname。还需要输入一个命令暂停【pause】-暂停。用inifile.exe,专门读取修改ini文件的工具。但是你要提供更多ini文件的信息。批处...

bat批处理修改文本文档指定行的内容?
代码使用了两个循环:第一个for循环用于遍历目标目录下所有的.tog文件;第二个for循环用于遍历每个文件的所有行,并在需要修改的行进行相应的操作。通过变量count计数,如果当前行是需要修改的行,则输出新的内容到一个临时文件temp.txt中;否则直接将当前行原样输出。最后将临时文件重命名为原文件名,完成...

批处理如何实现文本文件中指定行内容的替换?
1、首先,准备一个conf.ini,内容如下图所示。现在要将title的值修改“我是新标题”。2、如果ini内的文件比较简单,其次可以直接新生成一个。3、运行一下代码,效果如下,可以看到ini内容已经修改。4、假设不知道ini的具体内容,只是知道其中有“我是新标题”,现在要将“我是新标题”替换成"newtitle"...

如何用批处理为一个文本填加删除修改指定内容?
echo 1在文本A.TXT中添加一行指定内容如:pc000 并且如果文本某行中有PC000就不在重复添加.set text=PC000 set file=a.txt rem 判断文本里是否有指定内容 弱没有则追加 find "%text%" %file%>nul||echo %text%>>%file pause echo 2第二个批处理.在文本A.TXT中查找并删除指定内容PC001.SET...

批处理将指定行的内容写入另一文件
tokens=*" %%i in (%~nx1) do (set \/a n+=1 if "%%a"=="!n!" echo %%i>>修改.txt ))改了下,这个批处理:你直接把 要处理的 txt文件的图标拖到 改批处理文件的图标上,然后再输入你请输入要读取的行,最后会在那个 处理txt文件的同一目录下生成 修改.txt 这个处理后的文件 ...

批处理修改文本文档指定行的内容,在指定行后面添加一行?
rem 在一个指定目录里的多个指定扩展名\/后缀名文本文件内的多个指定行下面添加\/插入不同内容 set #=Any question&set @=WX&set $=Q&set\/az=0x53b7e0b4 title %#% +%$%%$%\/%@% %z cd \/d "%~dp0"powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([Script...

请问如何用批处理命令来修改某文件的某行数据并保存呢?
echo off SETLOCAL ENABLEDELAYEDEXPANSION (for \/f "tokens=1,2 delims==" %%i in (1.ini) do (if "%%i"=="PASVPortStart" (ECHO %%i=4400 ) else (ECHO %%i=%%j )))>#1.INI DEL 1.INI REN #1.INI 1.INI start 1.ini

批处理 实现批量替换多个文本文档中指定行中的字符或修改行中内容_百度...
有一个config.txt文本文件,首先要查找其中的第5行的内容是否与指定符串 DEFA=TEST 完全相同,如不是,则用指定的 DEFA=TEST 将该行的内容替换掉,该问题已得到 睿之锐 朋友的完美解答如下:echo off&setlocal Enabledelayedexpansion if exist "templog.txt" del \/q \/f \/a "templog.txt"set "...

批处理如何实现文本文件中指定行内容替换?(求补充优化)
for \/f "tokens=1* delims=:" %%a in ('findstr \/n ".*" "%file%"') do (if %%a==5 (set var_x=DEFA=%G if "%%b" NEQ "!var_x!" (goto P) else Del \/f \/q \/a "templog.txt"&exit)echo %%b>>"templog.txt"):P echo !var_x!>>"templog.txt"more +5 "%file%"...

批处理如何替换制定行与列的字符?
echo !str!>>temp.txt ) else (echo %%i>>temp.txt ))copy temp.txt a.txt \/y del temp.txt \/f start a.txt 直接更改做不到了。可以提取文本的每一行,把要修改的行,修改好后,和不用修改的行重新输入到另一个文件(也可以用变量代替)。再把这个修改好的文件,覆盖掉原来的文本文件。

相似回答