批处理文件如何将一个文本的内容在另一个文本中的指定行开始复制?
在电脑的D盘根目录下有一个文件名为copy.txt,在E盘根目录下有一个目标文件a.bat,想将copy.txt的所有内容拷贝到a.bat中,从第17行开始插入,请问下该...
在电脑的D盘根目录下有一个文件名为copy.txt,在E盘根目录下有一个目标文件a.bat,想将copy.txt的所有内容拷贝到a.bat中,从第17行开始插入,请问下该如何实现该功能?
展开
1个回答
展开全部
把下面的批处理存为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
@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
您再试一下。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询