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

[文本处理] [已解决]批处理如何给多个文本每隔一行插入一行特定数据内容?

请教高手:
如何实现将多个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
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%i in (1.txt) do set /a a+=1
  4. for /f "delims=" %%i in (1.txt) do (
  5.     echo %%i>>2.txt
  6.     set /a b+=1
  7.     if !b! equ !a! goto end
  8.     echo sleep 60>>2.txt
  9. )
  10. :end
  11. pause
复制代码

TOP

本帖最后由 滴血雄鹰 于 2021-6-13 12:30 编辑
不知道是谁 发表于 2021-6-13 12:07



    单个文件是可以,但我需要是对多个文件批量进行插入指定内容操作。

TOP

再加一层查找文件的for循环,不就行了。

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b *.txt') do (
  4. set/p f=<"%%a"
  5. (echo;!f!
  6. for /f "usebackq skip=1 delims=" %%b in ("%%a") do (echo;sleep 60
  7. echo;%%b))>new_%%a
  8. )
  9. pause
  10. exit
复制代码
1

评分人数

TOP

本帖最后由 qixiaobin0715 于 2021-6-13 21:12 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.txt) do (
  4.     set n=0
  5.     (for /f "delims=" %%i in ('type "%%a"') do (
  6.         set /a n+=1
  7.         if !n! neq 1 echo,sleep 60
  8.         echo,%%i
  9.     ))>"#%%a"
  10. )
  11. pause
复制代码
1

评分人数

TOP

本帖最后由 newswan 于 2021-6-13 23:11 编辑

powershell 简单
  1. foreach ($f in get-childitem *.txt -name)
  2. {
  3.     $fc = get-content 1.txt
  4.     $fc = $fc -replace "$","`n---"
  5.     $fc[$fc.count-1] = $fc[$fc.count-1] -replace "`n---",""
  6.     $fc
  7. }
复制代码

TOP

回复 6# qixiaobin0715

如果超过一个文件,每一行会多一个sleep 60。

TOP

回复 8# 滴血雄鹰
已修改,可以再试试

TOP

回复 9# qixiaobin0715

好了!

TOP

返回列表