Board logo

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

作者: ljfa0    时间: 2010-8-12 13:07     标题: 批处理如果将网址最后一个斜线后面的所有内容清除?

我现在举例,我的文本内容:
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 编辑 ]
作者: wankoilz    时间: 2010-8-12 13:33

额...你是说去掉最后一个 /  以及后面的内容吗?
作者: qq1178662380    时间: 2010-8-12 13:40

本人不太懂代码,不过有个苯办法。
存为txt文件,一行一个,用excel打开,打开时选择以“/”字符做为分隔符号隔成一列一列的,比如:
http  www.baidu.com bbs apisf。。。
http www.11.com forumdispaly。。。
然后按列c排序,剩下的就知道了吧。
作者: Batcher    时间: 2010-8-21 00:49

同样的问题:
http://bbs.bathome.net/thread-8965-1-1.html
作者: czjt1234    时间: 2010-8-21 17:48

假如文件名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
)
作者: qq506657335    时间: 2010-8-22 14:01

@for /f "tokens=1,2,3 delims=/" %%i in (1.txt) do echo
%%i//%%j/%%k
pause
作者: lvsehuaxue    时间: 2011-5-25 21:11

  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. )
复制代码

作者: batman    时间: 2011-5-25 21: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"
复制代码

作者: batman    时间: 2011-5-25 22:17

本帖最后由 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"
复制代码

作者: andy七少    时间: 2011-5-25 23:27

  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
复制代码

作者: batman    时间: 2011-5-25 23:44

本帖最后由 batman 于 2011-5-25 23:47 编辑

10# andy七少
如果是http://ww.bathome.net/123/123/12 ... page%3D1&page=1这样子的呢?
作者: batman    时间: 2011-5-26 00:01

再来个兼容一行多个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"
复制代码

作者: slore    时间: 2011-5-26 12:55

挖坟?

如果是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"
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2