批处理文件如何将一个文本的内容在另一个文本中的指定行开始复制?

在电脑的D盘根目录下有一个文件名为copy.txt,在E盘根目录下有一个目标文件a.bat,想将copy.txt的所有内容拷贝到a.bat中,从第17行开始插入,请问下该... 在电脑的D盘根目录下有一个文件名为copy.txt,在E盘根目录下有一个目标文件a.bat,想将copy.txt的所有内容拷贝到a.bat中,从第17行开始插入,请问下该如何实现该功能? 展开
 我来答
朴素且可爱灬小喵1
2015-11-13 · TA获得超过2902个赞
知道大有可为答主
回答量:1713
采纳率:89%
帮助的人:506万
展开全部
把下面的批处理存为myinsertbat.bat,双击运行后,e盘就会出现新的a.bat,原来的a.bat会存为a_backup.bat。
@echo off
@setlocal enabledelayedexpansion
@if exist e:\a_backup.bat goto E
@set n=1
@for /f "delims=" %%i in (e:\a.bat) do (
@if "n"=="17" goto N
@echo %%i >>e:\_a.bat
@set /a n=n+1
)
:N
@type d:\copy.txt >>e:\_a.bat
@for /f "skip=16 delims=" %%j in (e:\a.bat) do @echo %%j >>e:\_a.bat
@ren e:\a.bat e:\a_backup.bat
@ren e:\_a.bat e:\a.bat
:E
更多追问追答
追问
谢谢,使用了你的代码后实现了功能,但是执行的时候报错命令语法不正确,然后插入的时候会把之前17行后原文件的内容复制一次。。。。。
追答
不好意思,中间有一点失误了。之前是插入到第17行之前,以下代码应该是插入到第17行之后。
@echo off
@setlocal enabledelayedexpansion
@if exist e:\a_backup.bat goto E
@set n=1
@for /f "delims=" %%i in (e:\a.bat) do (
@if "!n!"=="18" goto N
@echo %%i >>e:\_a.bat
@set /a n=n+1
)
:N
@type d:\copy.txt >>e:\_a.bat
@for /f "skip=16 delims=" %%j in (e:\a.bat) do @echo %%j >>e:\_a.bat
@ren e:\a.bat e:\a_backup.bat
@ren e:\_a.bat e:\a.bat
:E
您再试一下。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式