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

[文本处理] 批处理如果将网址最后一个斜线后面的所有内容清除?

[复制链接]
发表于 2010-8-12 13:07:22 | 显示全部楼层 |阅读模式
我现在举例,我的文本内容:
http://www.baidu.com/bbs/apisfjdpasdfpj.htm
http://www.soso.com/bbs/forumdisplay.php?fid=119
http://www.11.com/forumdisplay.php?fid=119
http://www.22.com/bbs/forumdisplay.php?fid=119
http://www.33.com/forumdisplay.php?fid=119

运行完批处理后要这样的效果:
http://www.baidu.com/bbs/
http://www.soso.com/bbs/
http://www.11.com/
http://www.22.com/bbs/
http://www.33.com/

将/bbs和/com后面的版面代码去掉,但是/bbs不要去掉,网址后面没有/bbs的也别添上去。

我不懂批处理,谁能帮我写个批处理,小弟在这万分感谢!我没有发广告,上面的网址全是乱打上去的,这些网页根本不存在。

[ 本帖最后由 ljfa0 于 2010-8-12 16:00 编辑 ]
发表于 2010-8-12 13:33:44 | 显示全部楼层
额...你是说去掉最后一个 /  以及后面的内容吗?
发表于 2010-8-12 13:40:54 | 显示全部楼层
本人不太懂代码,不过有个苯办法。
存为txt文件,一行一个,用excel打开,打开时选择以“/”字符做为分隔符号隔成一列一列的,比如:
http  www.baidu.com bbs apisf。。。
http www.11.com forumdispaly。。。
然后按列c排序,剩下的就知道了吧。
发表于 2010-8-21 00:49:17 | 显示全部楼层
发表于 2010-8-21 17:48:23 | 显示全部楼层
假如文件名22.txt

@echo off
for /f "tokens=1,2,3 delims=/" %%i in (22.txt) do (
if /i %%k equ bbs echo %%i//%%j/%%k>>11.txt
if /i %%k neq bbs echo %%i//%%j>>11.txt
)
发表于 2010-8-22 14:01:08 | 显示全部楼层
@for /f "tokens=1,2,3 delims=/" %%i in (1.txt) do echo
%%i//%%j/%%k
pause
发表于 2011-5-25 21:11:50 | 显示全部楼层

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3.     set "v=%%~dpi"
  4.     set "v=!v:%cd%\=!"
  5.     set "v=!v:\=/!"
  6.     set "v=!v:http:/=http://!"
  7.     echo !v!
  8. )
复制代码
发表于 2011-5-25 21:57:57 | 显示全部楼层
来个vbs的,文本名自己改哈:

  1. Set fso = CreateObject("scripting.filesystemobject")
  2. vbstr = fso.OpenTextFile("a.txt", 1, 1).ReadAll()
  3. fso.DeleteFile("a.txt")
  4. For Each str In Split(vbstr, vbCrLf)
  5.   vbout = ""
  6.   For i = 0 To UBound(Split(str, "/"))-1
  7.     vbout = vbout & Split(str, "/")(i) & "/"
  8.   Next
  9.   fso.OpenTextFile("a.txt", 8, 1).WriteLine Replace(vbout, "http:/", "http://")
  10. Next
  11. Set fso = Nothing
  12. MsgBox "ok"

复制代码
发表于 2011-5-25 22:17:36 | 显示全部楼层
本帖最后由 batman 于 2011-5-25 23:10 编辑

再来一个正则的,我vbs正则很弱,当练习了:

  1. Set fso = CreateObject("scripting.filesystemobject")
  2. vbstr = fso.OpenTextFile("a.txt", 1, 1).ReadAll()
  3. Set RegEx = New RegExp
  4. regex.Global = True
  5. regex.Pattern = "(\w+://.*/)[^/]+" & vbCrLf
  6. vbstr = regex.Replace(vbstr, "$1" & vbCrLf)
  7. Set regex = Nothing
  8. fso.OpenTextFile("a.txt", 2, 1).Write vbstr
  9. Set fso = Nothing
  10. MsgBox "ok"
复制代码
发表于 2011-5-25 23:27:39 | 显示全部楼层

  1. @echo off
  2. for /f "tokens=1,2,3 delims=/" %%i in (1.txt) do (
  3. if "%%k"=="bbs" (echo %%i//%%j/%%k)
  4. else echo %%i//%%j)
  5. pause>nul
复制代码
发表于 2011-5-25 23:44:51 | 显示全部楼层
本帖最后由 batman 于 2011-5-25 23:47 编辑

10# andy七少
如果是http://ww.bathome.net/123/123/12 ... page%3D1&page=1这样子的呢?
发表于 2011-5-26 00:01:20 | 显示全部楼层
再来个兼容一行多个url的正则,url间的分隔符只能为tab、空格以及其他空字符

  1. Set fso = CreateObject("scripting.filesystemobject")
  2. vbstr = fso.OpenTextFile("a.txt", 1, 1).ReadAll()
  3. Set RegEx = New RegExp
  4. regex.Global = True
  5. regex.Pattern = "(\w+://[^:\s]+/)[^/:\s]+"
  6. vbstr = regex.Replace(vbstr, "$1")
  7. Set regex = Nothing
  8. fso.OpenTextFile("a.txt", 2, 1).Write vbstr
  9. Set fso = Nothing
  10. MsgBox "ok"
复制代码
发表于 2011-5-26 12:55:19 | 显示全部楼层
挖坟?

如果是VBS的话。。。其实2个函数就好了啊,不用搞的那么复杂

Left(strlines(i),InStrRev(strlines(i),"/"))

  1. Const ForReading = 1
  2. Const ForWriting = 2
  3. Set objFSO = CreateObject("scripting.filesystemobject")
  4. Set objFile = objFSO.OpenTextFile("a.txt", ForReading, 1)
  5. vbstr = objFile.ReadAll()
  6. objFile.Close
  7. 'objFSO.DeleteFile("a.txt")
  8. Set objFile = objFSO.OpenTextFile("a.txt", ForWriting, 1)
  9. Dim strlines
  10. strlines=Split(vbstr, vbCrLf)
  11. For i = 0 To UBound(strlines)
  12.     IF Len(strlines(i))>0 Then
  13.         objFile.WriteLine Left(strlines(i),InStrRev(strlines(i),"/"))
  14.     End If
  15. Next
  16. objFile.Close
  17. Set objFile = Nothing
  18. Set objFSO = Nothing
  19. MsgBox "Finish"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 08:57 , Processed in 0.014927 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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