[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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
}

回复 1# toyerspollors

插入到某行中?
你是说某行前或者某行后吧。

TOP

算是插到中间吧。

样板如下:

4234
23423
插到某行这里
4234
2423

TOP

比如把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

评分人数

TOP

比如把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
要如何处理?我加上引号不起作用,望老师指教!学海无涯!

TOP

回复 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
复制代码

TOP

回复  toyerspollors
建议将两个文本文件及批处理文件放在同一个文件夹中处理,这样就不必考虑路径中带空 ...
qixiaobin0715 发表于 2021-10-3 19:38


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

不过想到个土方法,就是先把这两个文件移动到同一个文件夹内,处理完后再移动回去。我的头脑比较死,只能想到这么处理

TOP

返回列表