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

[文本处理] 批处理如何删除多个文本里行尾的指定字符串

本帖最后由 pcl_test 于 2016-12-10 12:45 编辑

在目录 D:\tt\ 下有很多txt文件, 如何把每个txt文件中,行尾的“bb”、“cc”的字符串删除?
1

评分人数

回复 4# L1900


    楼主只会伸手,问问题不先说明清楚,开头没有指明文件夹,现在又说要处理子文件夹 你真能折腾人

TOP

回复 3# flyinnet9

flyinnet9, 大哥, “D:\tt\”目录下,有很多文件夹,文件夹里也有很多txt文件,该怎么办?

大哥,你的微信号是?我发红包给你。

请提供完整的代码!

TOP

  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. cd /d d:\tt\
  4. for /f "delims=" %%i in ('dir /a-d /b d:\tt\*.txt') do (
  5.   (for /f "usebackq delims=" %%a in ("%%i") do (
  6.     set str=%%a
  7.     for %%b in (bb cc) do (
  8.       if "!str:~-2!"=="%%b" (set str=!str:~0,-2!&echo.!str!&set f=1)
  9.     )
  10.     if not defined f echo.!str!
  11.     set f=
  12.   ))>$
  13.   move /y $ "%%i" >nul
  14. )
  15. pause
复制代码

TOP

本帖最后由 Nsqs 于 2016-12-8 17:20 编辑
  1. :on error resume next
  2. :sub class_bat
  3. ' 2>nul&echo off&cls
  4. cscript -nologo -e:vbs "%~0"
  5. pause
  6. exit sub
  7. :end sub
  8. set fso=createobject("scripting.filesystemobject")
  9. set regexp=new regexp
  10. set f=fso.getfolder(".")
  11. regexp.global=-1:regexp.ignorecase=-1
  12. regexp.pattern="(.*)(bb|cc)"
  13. wsh.echo "演示结果:"
  14. for each list in f.files
  15. if fso.getextensionname(list)="txt" then
  16. wsh.echo string(15,"-"),fso.getfilename(list),string(15,"-")
  17. read=fso.opentextfile(list).readall
  18. change=RegExp.Replace(read,"$1")
  19. fso.createtextfile(file).write change
  20. wsh.echo change
  21. end if
  22. next
  23. set f=nothing:set fso=nothing:set regexp=nothing
复制代码

TOP

返回列表