标题: [文本处理] [已解决]批处理TXT如何在指定行添加指定内容并保存 [打印本页]
作者: 304230411 时间: 2022-6-3 13:10 标题: [已解决]批处理TXT如何在指定行添加指定内容并保存
请问各位大神,我现在有成千上万个TXT文本。然后我需要在每一个文本里的第307行添加两行内容:
307::123456789
308:23457823
然后,添加完成之后不新建文本。也就是在原有文件的基础上直接在指定行添加指定内容并保存
求各位大神给我一个可以实现以上需求的BAT代码
作者: went 时间: 2022-6-3 13:25
test.bat
ansi编码- #&cls&@cd /d "%~dp0"&powershell -c "Get-Content '%~0' | Out-String | Invoke-Expression" & pause&exit
- cls
- #文本编码 ascii utf8
- $txt_enc = 'utf8'
- #插入行数,0开始
- $line_num = 306
- #插入内容
- $insert_txt = @'
- 307::123456789
- 308:23457823
- '@
- Get-ChildItem '*.txt' | foreach {
- Write-Host $_.FullName
- $arr = Get-Content $_.FullName -Encoding $txt_enc
- if($arr.Count -ge $line_num){
- &{
- $arr[0..($line_num-1)]
- $insert_txt
- $arr[$line_num..($arr.Count-1)]
- } | Out-File $_.FullName -Encoding $txt_enc
- }
- }
复制代码
作者: flashercs 时间: 2022-6-3 13:58
- @echo off
- cd /d "%~dp0"
- 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;}}"
- pause
- exit /b
复制代码
作者: 304230411 时间: 2022-6-3 14:00
回复 2# went
感谢大佬,亲测可用,完全实现我说的那些需求
作者: 304230411 时间: 2022-6-3 14:01
回复 3# flashercs
感谢感谢
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |