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

[文本处理] [已解决]批处理如何在文本里的每一行首尾插入/添加指定字符串

[复制链接]
发表于 2013-6-27 15:56:33 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-11-7 22:41 编辑

是一个txt文件。最好能弄成指定的路径!比如说D:\118\1.txt 文本里的内容如下

周文波|周爱民
李逸民|戴小文
戴小夏|周东波
谢志明|刘东声

要改成以下的内容

1=周文波|周爱民 |2
2=李逸民|戴小文 |2
3=戴小夏|周东波 |2
4=谢志明|刘东声 |2

依次类推下去。 下面还有很多名字
追加问题实现 一个文件下所有的txt文件都执行此批处理!并且不改动txt的原名!

评分

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

查看全部评分

发表于 2013-6-27 17:17:13 | 显示全部楼层
本帖最后由 terse 于 2013-6-30 02:16 编辑

刚刚的回贴怎么不见了
  1. @echo off&setlocal enabledelayedexpansion
  2. set "filepath=d:\123"
  3. del tem$ 2>nul
  4. for /f "tokens=1,2* delims=:" %%a in ('findstr /isn . "%filepath%*.txt"') do (
  5.     set "str=%%c"
  6.     set str=!str:%filepath%=^

  7. !
  8.     for /f "tokens=1,2* delims=:" %%i in ("%%~nxb:!str!") do (
  9.         for /f "tokens=*" %%s in ("%%j=%%k |2") do (
  10.            if defined t if "!t!" neq "!filepath!%%i" move tem$ "!t!"
  11.            >>tem$ echo %%s
  12.         )
  13.         set "t=!filepath!%%i"
  14.     )
  15. )
  16. move tem$ "!t!"
  17. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
cmhcwyd1 + 1 完美解决问题!谢谢大哥。有时间能详细解说 ...

查看全部评分

发表于 2013-6-27 18:26:41 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "FILE=D:\118\1.txt"
  4. set "NUM=1"
  5. (for /f "usebackq delims=" %%i in ("%FILE%") do (
  6.     echo !NUM!=%%i ^|2
  7.     set /a NUM+=1
  8. ))>1_new.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2013-6-28 21:09:08 | 显示全部楼层
  1. @echo off & setlocal ENABLEDELAYEDEXPANSION
  2. (for /f "delims=" %%i in (D:\118\1.txt) do (
  3. set /a a+=1
  4. echo !a!^=%%i ^|2
  5. ))>>1q.txt
  6. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2013-6-30 14:51:44 | 显示全部楼层
本帖最后由 cmhcwyd1 于 2013-6-30 15:02 编辑

回复 2# terse


    谢谢2楼的 terse  完美同时解决我的txt文本的2个问题。忠心感谢。就目前。我还想完善下一个问题就是:在文件夹内的所有txt文件的开头都加入2行字!实现的效果如下!同时确保实现前面的2个效果!就是(1):实现文本内容转换 。(2):实现文件夹内所有txt文本都转换。现在追加个就是(3):在每个txt文件开头加2行词,已用红色标明

[实验中学]
桌号=姓名|姓名|人数数量

1=周文波|周爱民 |2
2=李逸民|戴小文 |2
3=戴小夏|周东波 |2
4=谢志明|刘东声 |2
发表于 2013-6-30 15:49:43 | 显示全部楼层
本帖最后由 terse 于 2013-6-30 15:50 编辑

回复 5# cmhcwyd1
前面代码也有BG 空行可能有错

  1. @echo off&setlocal enabledelayedexpansion
  2. set "filepath=d:\123"
  3. pushd "%filepath%"
  4. for /f "delims=" %%a in ('dir /b /a-d *.txt') do (
  5.     set n=0
  6.     (
  7.             echo [实验中学]
  8.             echo 桌号=姓名^|姓名^|人数数量
  9.             for /f "usebackq delims=" %%i in ("%%a") do (
  10.                 set /a n+=1
  11.                 echo !n!=%%i ^|2
  12.           )
  13.     )>$tem.t
  14.     move $tem.t "%%a"
  15. )
  16. popd
  17. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

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

本版积分规则

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

GMT+8, 2026-3-20 18:16 , Processed in 0.029633 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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