Board logo

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

作者: cmhcwyd1    时间: 2013-6-27 15:56     标题: [已解决]批处理如何在文本里的每一行首尾插入/添加指定字符串

本帖最后由 pcl_test 于 2016-11-7 22:41 编辑

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

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

要改成以下的内容

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

依次类推下去。 下面还有很多名字
追加问题实现 一个文件下所有的txt文件都执行此批处理!并且不改动txt的原名!
作者: terse    时间: 2013-6-27 17:17

本帖最后由 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
复制代码

作者: Python    时间: 2013-6-27 18:26

  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
复制代码

作者: 522235677    时间: 2013-6-28 21:09

  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
复制代码

作者: cmhcwyd1    时间: 2013-6-30 14:51

本帖最后由 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
作者: terse    时间: 2013-6-30 15:49

本帖最后由 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
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2