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

[文本处理] [已解决]批处理TXT如何在指定行添加指定内容并保存

[复制链接]
发表于 2022-6-3 13:10:02 | 显示全部楼层 |阅读模式
请问各位大神,我现在有成千上万个TXT文本。然后我需要在每一个文本里的第307行添加两行内容:
307::123456789
308:23457823
然后,添加完成之后不新建文本。也就是在原有文件的基础上直接在指定行添加指定内容并保存
求各位大神给我一个可以实现以上需求的BAT代码

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2022-6-3 13:25:17 | 显示全部楼层
test.bat
ansi编码
  1. #&cls&@cd /d "%~dp0"&powershell -c "Get-Content '%~0' | Out-String | Invoke-Expression" & pause&exit
  2. cls
  3. #文本编码 ascii utf8
  4. $txt_enc = 'utf8'
  5. #插入行数,0开始
  6. $line_num = 306
  7. #插入内容
  8. $insert_txt = @'
  9. 307::123456789
  10. 308:23457823
  11. '@
  12. Get-ChildItem '*.txt' | foreach {
  13.     Write-Host $_.FullName
  14.     $arr = Get-Content $_.FullName -Encoding $txt_enc
  15.     if($arr.Count -ge $line_num){
  16.         &{
  17.             $arr[0..($line_num-1)]
  18.             $insert_txt
  19.             $arr[$line_num..($arr.Count-1)]
  20.         } | Out-File $_.FullName -Encoding $txt_enc
  21.     }
  22. }
复制代码
发表于 2022-6-3 13:58:37 | 显示全部楼层
  1. @echo off
  2. cd /d "%~dp0"
  3. powershell -c "gci .\*.txt|foreach-object{$lines=($_|gc -readcount 0);if($lines.count -ge 307){$lines[306]=($lines[306],'123456789','23457823') -join ([environment]::newline);sc -literalpath $_.fullname -value $lines;}}"
  4. pause
  5. exit /b
复制代码
 楼主| 发表于 2022-6-3 14:00:36 | 显示全部楼层
回复 2# went


    感谢大佬,亲测可用,完全实现我说的那些需求
 楼主| 发表于 2022-6-3 14:01:36 | 显示全部楼层
回复 3# flashercs


    感谢感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 23:35 , Processed in 0.016026 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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