[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 tmplinshi 于 2012-11-17 17:32 编辑
  1. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  2. :: 工具下载地址
  3. ::     sed 4.0.7 win换行
  4. ::     http://bathome.net/thread-15605-1-4.html
  5. ::
  6. ::     GNU Awk 3.1.0
  7. ::     http://sourceforge.net/projects/unxutils/files/
  8. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  9. @echo off
  10. :: --------------------- 设置 ---------------------
  11. set "folder=e:\我的文档\桌面"
  12. set "filename=a.xml"
  13. set "str=xxxx"
  14. :: --------------------- /设置 ---------------------
  15. :: 创建文件列表
  16. dir /s /b "%folder%\%filename%" >.tmp
  17. :: 统计文件个数
  18. for /f %%a in (' find /c /v "" ^< .tmp ') do (
  19.     set /a total = %%a, count = 0
  20. )
  21. :: 替换
  22. for /f "delims=" %%a in (.tmp) do (
  23.     call :replace "%%a"
  24. )
  25. :: 退出
  26. set /p =处理完毕!按回车键退出. . . <nul
  27. pause >nul
  28. exit /b
  29. :replace
  30.     set /a count += 1
  31.     title %count% / %total%
  32.     echo %1
  33.    
  34.     gawk "{gsub(/%str%/,\"\n^&\")};{print}" FS="%str%" %1 | gawk "{sub(/%str%/,++n-1 \"^&\");print}" | sed -r ":a;N;$!ba;s/\n([0-9]+)%str%/\1/g" >.tmp
  35.    
  36.     move .tmp %1
  37.     goto :eof
复制代码
下载“gawk.exe sed.exe test.bat.zip”:
http://files.getwebb.org/view-cre63ai1.html

TOP

回复 3# nicevoice


    需要下载 gawk 和 sed。代码的开头有下载地址。或者在代码的下面,我已经打包好了 gawk.exe sed.exe test.bat 这三个文件。

TOP

回复 6# nicevoice


    好。多谢。[email]tmplinshi@gmail.com[/email]

TOP

本帖最后由 tmplinshi 于 2012-11-20 01:41 编辑
  1. @echo off
  2. :: --------------------- 设置 ---------------------
  3. set "folder=e:\我的文档\桌面"
  4. set "filename=a.xml"
  5. set "str=xxxx"
  6. :: --------------------- /设置 ---------------------
  7. :: 创建文件列表
  8. dir /s /b "%folder%\%filename%" >.tmp
  9. :: 统计文件个数
  10. for /f %%a in (' find /c /v "" ^< .tmp ') do (
  11.     set /a total = %%a, count = 0
  12. )
  13. :: 替换
  14. for /f "delims=" %%a in (.tmp) do (
  15.     call :replace "%%a"
  16. )
  17. :: 退出
  18. set /p =处理完毕!按回车键退出. . . <nul
  19. pause >nul
  20. exit /b
  21. :replace
  22.     set /a count += 1
  23.     title %count% / %total%
  24.     echo %1
  25.    
  26.     gawk -v n=-1 "{for (i = 1; i < NF; i++){++n; printf($i n)}; print $NF}" "FS=%str%" %1 >.tmp
  27.    
  28.     move .tmp %1
  29.     goto :eof
复制代码

TOP

返回列表