找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23134|回复: 6

[文本处理] 【已解决】批处理如何把某个文件的内容插入到另一文件的指定行中?

[复制链接]
发表于 2021-10-3 08:34:01 | 显示全部楼层 |阅读模式
本帖最后由 toyerspollors 于 2021-10-4 21:36 编辑

在不借助第三方工具,纯bat命令,我想把111.md这个文件中的内容,插入到222.txt文件中指定的第N行,至于第几行可以用set设置变量。

我在论坛搜索了关键字“插入”,找不到合用的帖子参考学习,请老师指教一下代码如何写。

另外,如果我想把以下内容放在bat文件中,达到直接把这些内容插入到222.txt文件中的某行中,又该如何写代码?
Function While_read_LINE(){
cat $FILENAME | while read LINE
do
echo $LINE
done
}
发表于 2021-10-3 09:03:46 | 显示全部楼层
回复 1# toyerspollors

插入到某行中?
你是说某行前或者某行后吧。
 楼主| 发表于 2021-10-3 13:34:41 | 显示全部楼层
算是插到中间吧。

样板如下:

4234
23423
插到某行这里
4234
2423
发表于 2021-10-3 13:56:02 | 显示全部楼层
比如把111.md的内容插入到21、22行之间。
  1. @echo off
  2. set n=21
  3. setlocal enabledelayedexpansion
  4. (for /f "delims=" %%a in (222.txt) do (
  5.     set /a m+=1
  6.     echo,%%a
  7.     if !m!==!n! type 111.md
  8. ))>#222.txt
  9. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
toyerspollors + 1 感谢老师的帮助

查看全部评分

 楼主| 发表于 2021-10-3 18:12:33 | 显示全部楼层
比如把111.md的内容插入到21、22行之间。
qixiaobin0715 发表于 2021-10-3 13:56


如果222.txt、111.md这两个文件所在路径是带有空格的话,如
D:\aaa\a b\222.txt
D:\bbb\b c\111.md
要如何处理?我加上引号不起作用,望老师指教!学海无涯!
发表于 2021-10-3 19:38:31 | 显示全部楼层
回复 5# toyerspollors
建议将两个文本文件及批处理文件放在同一个文件夹中处理,这样就不必考虑路径中带空格的问题:
  1. @echo off
  2. set n=21
  3. setlocal enabledelayedexpansion
  4. cd /d "D:\aaa\a b"
  5. (for /f "delims=" %%a in (222.txt) do (
  6.     set /a m+=1
  7.     echo,%%a
  8.     if !m!==!n! type "D:\bbb\b c\111.md"
  9. ))>#222.txt
  10. pause
复制代码
 楼主| 发表于 2021-10-3 22:29:29 | 显示全部楼层
回复  toyerspollors
建议将两个文本文件及批处理文件放在同一个文件夹中处理,这样就不必考虑路径中带空 ...
qixiaobin0715 发表于 2021-10-3 19:38


谢谢老师提点,不过若是这样处理的话,就不便于工作了。

不过想到个土方法,就是先把这两个文件移动到同一个文件夹内,处理完后再移动回去。我的头脑比较死,只能想到这么处理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 01:45 , Processed in 0.027828 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表