返回列表 发帖
  1. :On Error Resume Next
  2. :set fso=CreateObject("scripting.filesystemobject")
  3. :Sub class_bat
  4. echo off&cls
  5. cscript -nologo -e:vbs "%0"
  6. pause
  7. Exit Sub
  8. :End Sub
  9. set RegExp=new RegExp
  10. RegExp.IgnoreCase=-1:RegExp.Global=-1:regexp.multiline=-1
  11. file="a.txt"
  12. RegExp.Pattern=".*\|([^a-z]*|[^0-9]*)$"
  13. var=fso.opentextfile(file).readall
  14. var=RegExp.Replace (var,"")
  15. RegExp.Pattern="^.*[^\n]$"
  16. set matches=regexp.execute(var)
  17. for each match in matches
  18. result=result&match&vbcrlf
  19. next
  20. result=left(result,len(result)-2)
  21. fso.createtextfile("new.txt").write result
  22. wsh.echo result
复制代码

TOP

本帖最后由 Nsqs 于 2017-1-22 04:45 编辑

方法1
  1. ' 2>nul &cls&(type "1.txt"|cscript -nologo -e:"vbs" "%~0")>new.txt&exit
  2. set ws=wsh.stdin:set regexp=new regexp
  3. with regexp
  4.     do
  5.         .global=-1:.pattern="^.+\|\d*$"
  6.         read=ws.readline
  7.         if not .test(read) then wsh.echo read
  8.     loop until ws.atendofstream
  9. end with
复制代码
方法2
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "tokens=1-2 delims=|" %%1 in (1.txt)do (
  3. set /a n=%%2
  4. if !n! equ 0 echo %%1^|%%2
  5. ))>new.txt 2>nul
复制代码

TOP

回复 4# CrLf


    这个正则写法有问题,有的数字没有剔除

TOP

返回列表