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

在电脑的D盘有一个文件名为copy.txt,在E盘下有一个目标文件a.bat,想将copy.txt的所有内容拷贝到a.bat中,从第17行开始插入,请问下该如何实现该功能?

阅读 7.8k
1 个回答

代码如下,其中 fileA.txt 就是你的bat文件,flieC.txt就是你的 copy.txt, 如果你想放到命令参数里也行。
需要注意的一点是,这个会把生产的文件放到标准输出上,并不是 fileA.txt,你可以重定向到你想要的文件。而是觉得太危险,命令行不能撤销修改原文件总是太危险。

@echo off
color 0A
rem 方便修改定义的一些变量
set append=17
set to=fileA.txt
set from=fileC.txt

setlocal EnableDelayedExpansion
set lines=1
for /f "delims=" %%i in (%to%) do (
   echo %%i
   if "!lines!"=="%append%" (
      type %from%
   )
   set /A lines=!lines!+1
)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进