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


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

TOP

  1. findstr /v "\|[0-9][0-9]*$" 1.txt >new.txt
复制代码
1

评分人数

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

本帖最后由 老刘1号 于 2017-1-22 16:55 编辑
  1. Echo off&cls
  2. >输出.txt (
  3. FOR /f "delims=^| tokens=1,*" %%a in (文本.txt) do (
  4.     echo.%%b|(Findstr /i "a b c d e f g h i j k l m n o p q r s t u v w x y z")1>nul 2>&1&&Echo.%%a^|%%b
  5. ))
复制代码
出了点小问题,改下……
这回真改了……
2

评分人数

    • Rasm: 厉害,完美解决了技术 + 1
    • capslock: 乐于助人技术 + 1

TOP

批处理如何批量删除纯数字所在的行数?

jhfgudeli|wodima123
jhfgudeli|jhfgudeli
jhfgudeli|7204381
jest1314527|1314527
jeffnomms|fanzhe128
jaychen3326|wfd901215


“|”右侧只要是纯数字的,整行删除,“123123fa” 这种不要删除掉哦

TOP

回复 15# flyinnet9


   按照你第一次写代码,该如何修改呢

TOP

回复 1# Rasm

老旧DZ 齿问题了
删除|右边数字列
cat a
jhfgudeli|wodima123
jhfgudeli|jhfgudeli
jhfgudeli|7204381
jest1314527|1314527
jeffnomms|fanzhe128
jaychen3326|wfd901215
jaychen3326|123456
jasonlouhao|jasonlouhao
jasonlouhao|asd138
jasonlee123|jasonlee123
jasonlee123|19880918
jasonlee123|123123
jaskjay|63619063qw
awk -F "|" '$2!~ /^[0-9]+$/'  a
应得结果
jhfgudeli|wodima123
jhfgudeli|jhfgudeli
jeffnomms|fanzhe128
jaychen3326|wfd901215
jasonlouhao|jasonlouhao
jasonlouhao|asd138
jasonlee123|jasonlee123
jaskjay|63619063qw

TOP

本帖最后由 flyinnet9 于 2017-1-13 10:34 编辑

有字符的另算
  1. 纯数字
  2. findstr "|[0-9]*$" a.txt
  3. 纯字母
  4. findstr "|[^0-9]*$" a.txt
  5. 非纯数字
  6. findstr /v "|[0-9]*$" a.txt
  7. 非纯字母
  8. findstr /v "|[^0-9]*$" a.txt
  9. 数字和字母
  10. findstr /v "|[0-9]*.$" a.txt |findstr /v "|[^0-9]*.$"
复制代码

TOP

回复 10# flyinnet9


    转换下,一样的,文本,如果是 | 右边只保留纯数字呢,该怎么修改代码

TOP

  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

  1. findstr /v "[^|0-9 ][0-9]* *$" a.txt
复制代码

TOP

回复 9# Rasm
导出来少了一行。
第13行应该是要的吧?

TOP

回复 9# Rasm
  1. @echo off
  2. (for /f "tokens=1-2 delims=|" %%a in (a.txt) do (
  3.   for /f "delims=0123456789" %%c in ("#%%b") do if not "%%c"=="#" if not "%%c"=="#%%b" echo.%%a^|%%b
  4. ))>result.txt
  5. pause
复制代码

TOP

回复 2# flyinnet9


    已经成功导出到新文本,

请教,如何删除纯数字和纯字母呢,因为我只想要字母+数字的内容

TOP

回复 7# /zhqsystem/zhq


    真能搞笑,自己试试吧,代码肯定不对。

TOP

返回列表