标题: [文本处理] [已解决]批处理如何给多个文本每隔一行插入一行特定数据内容? [打印本页]
作者: 滴血雄鹰 时间: 2021-6-13 11:38 标题: [已解决]批处理如何给多个文本每隔一行插入一行特定数据内容?
请教高手:
如何实现将多个txt文本每隔一行插入一行特定数据内容:
如:
多个TXT文件,文件内容格式如下:
aaaa
bbbbbbbb
cccccc
dddddddd
eeeeeeeeee
ffffffff
....N行
88888
在文件中每行后插入:sleep 60,但内容最后一行不需要插入。
插入后变成这样:
aaaa
sleep 60
bbbbbbbb
sleep 60
cccccc
sleep 60
dddddddd
sleep 60
eeeeeeeeee
sleep 60
ffffffff
sleep 60
....N行
sleep 60
88888
作者: 不知道是谁 时间: 2021-6-13 12:07
- @echo off
- setlocal enabledelayedexpansion
- for /f %%i in (1.txt) do set /a a+=1
- for /f "delims=" %%i in (1.txt) do (
- echo %%i>>2.txt
- set /a b+=1
- if !b! equ !a! goto end
- echo sleep 60>>2.txt
- )
- :end
- pause
复制代码
作者: 滴血雄鹰 时间: 2021-6-13 12:17
本帖最后由 滴血雄鹰 于 2021-6-13 12:30 编辑
不知道是谁 发表于 2021-6-13 12:07
单个文件是可以,但我需要是对多个文件批量进行插入指定内容操作。
作者: qixiaobin0715 时间: 2021-6-13 16:57
再加一层查找文件的for循环,不就行了。
作者: 路过 时间: 2021-6-13 18:39
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /b *.txt') do (
- set/p f=<"%%a"
- (echo;!f!
- for /f "usebackq skip=1 delims=" %%b in ("%%a") do (echo;sleep 60
- echo;%%b))>new_%%a
- )
- pause
- exit
复制代码
作者: qixiaobin0715 时间: 2021-6-13 19:01
本帖最后由 qixiaobin0715 于 2021-6-13 21:12 编辑
- @echo off
- setlocal enabledelayedexpansion
- for %%a in (*.txt) do (
- set n=0
- (for /f "delims=" %%i in ('type "%%a"') do (
- set /a n+=1
- if !n! neq 1 echo,sleep 60
- echo,%%i
- ))>"#%%a"
- )
- pause
复制代码
作者: newswan 时间: 2021-6-13 19:07
本帖最后由 newswan 于 2021-6-13 23:11 编辑
powershell 简单- foreach ($f in get-childitem *.txt -name)
- {
- $fc = get-content 1.txt
- $fc = $fc -replace "$","`n---"
- $fc[$fc.count-1] = $fc[$fc.count-1] -replace "`n---",""
- $fc
- }
复制代码
作者: 滴血雄鹰 时间: 2021-6-13 20:45
回复 6# qixiaobin0715
如果超过一个文件,每一行会多一个sleep 60。
作者: qixiaobin0715 时间: 2021-6-13 21:13
回复 8# 滴血雄鹰
已修改,可以再试试
作者: 滴血雄鹰 时间: 2021-6-14 17:57
回复 9# qixiaobin0715
好了!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |