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

[代码合集] 批处理如何实现在文本前10个字符的头尾插入指定字符串

[复制链接]
发表于 2013-4-26 11:14:18 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-11-4 19:01 编辑

如题,如何批量处理,一个文件夹下的所有txt文件的的前20个字符的头尾插入文字或字符!


比如一个文本是开头是  "一记响亮的耳光狠狠的搧在这张令人嗔恨的脸上护士趁对方惊。。。。"    改成这样的 "<a>一记响亮的耳光狠狠的</a>搧在这张令人嗔恨的脸上护士趁对方惊。。。。"   

这样截取txt文本的前20个字符 然后头尾插入<a> </a>。


求大神给我写个批处理代码,小弟感激不尽!
发表于 2013-4-26 12:57:05 | 显示全部楼层
本帖最后由 skynjupt 于 2013-4-26 13:05 编辑

下面的批处理只会修改本文件夹下的TXT文本(不包括子文件下的TXT文本)
  1. @echo off&chcp 936>nul&color 0A

  2. mkdir tempFile 2>nul

  3. for %%i in (*.txt) do (
  4.         cd.>.\tempFile\%%~ni.temp
  5.         call :subFun %%i
  6. )

  7. pushd ".\tempFile"
  8. ren *.temp *.txt 1>nul
  9. popd

  10. move /y .\tempFile\*.txt .\ 1>nul
  11. rd /q /s tempFile

  12. echo 处理完毕,按任意键结束...
  13. pause>nul&exit

  14. ::第一个参数为文件名
  15. :subFun
  16. setlocal EnableDelayedExpansion
  17. set "b=0"
  18. for /f "delims=" %%j in (%~1) do (
  19.         if "%%j" neq "" (
  20.                 if !b! equ 0 (
  21.                 set "b=1"
  22.                 set "lines=%%j"
  23.                 set "line_1=!lines:~,20!"
  24.                 set "line_2=!lines:~19!"
  25.                 echo ^<a^>!line_1!^</a^>!line_2!>>.\tempFile\%~n1.temp
  26.                 ) else (
  27.                 echo %%j>>.\tempFile\%~n1.temp
  28.                 )
  29.         )
  30. )
  31. endlocal
  32. goto :eof
复制代码
发表于 2013-4-26 13:00:51 | 显示全部楼层
本帖最后由 xxpinqz 于 2013-4-26 13:06 编辑

你这是20字节,10字符
你到底是要前20字节呢还是前10个字符?下面是取前10字符,供参考:

  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in (*.txt) do (
  3.   (set /p s=
  4.   set "p=!s:~0,10!"
  5.   for /f "delims=" %%c in ("!p!") do set "s=!s:%%c=<a>%%c</a>!"&echo,!s!
  6.   more +1
  7.   )<%%a>$%%a
  8. )
复制代码
发表于 2013-4-26 13:43:12 | 显示全部楼层
外部 SED
  1. sed -sri "1s/.{1,20}/<a>&<\\a>/" *.txt
复制代码
 楼主| 发表于 2013-4-26 15:31:10 | 显示全部楼层
回复 3# xxpinqz

您好!你的这个方法可行。但是如果我的TXT是UTF-8的,采用批处理后就会变成ANSI。造成处理后的TXT文本是乱码的!

问题已解决,感谢大家的帮助!小弟在此谢过!
发表于 2013-4-26 22:39:39 | 显示全部楼层
回复  5#点这里iconv xiaoxiaol01
发表于 2013-4-27 00:58:02 | 显示全部楼层
回复 5# xiaoxiaol01


    保存一个空的 utf-8 文件头为 utf.文件头,然后这样:
  1. for %%a in (*.txt) do copy /b utf.文件头+"%%a" "%%~dpna_处理%%~xa"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 18:28 , Processed in 0.025009 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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