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

[文本处理] 批处理如何以最后一个“/”为分隔符提取前面的内容?

[复制链接]
发表于 2010-8-16 13:31:34 | 显示全部楼层 |阅读模式
如何以最后一个“/“为分隔符。提取前面的内容?
http://pli6.999pcs.com/yinge06/lj/bbs/ShowPost.asp?ThreadID=406
变成http://pli6.999pcs.com/yinge06/lj/bbs/
发表于 2010-8-16 14:03:01 | 显示全部楼层
  1. gawk "BEGIN{FS=OFS="/"}{NF=NF-1}1" 1.txt
复制代码
发表于 2010-8-16 14:05:23 | 显示全部楼层

回复 2楼 的帖子

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>gawk /?
'gawk' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\Documents and Settings\Administrator>
发表于 2010-8-16 14:58:55 | 显示全部楼层

回复 3楼 的帖子

自己去下载一个吧
 楼主| 发表于 2010-8-16 17:39:51 | 显示全部楼层
批处理没办法吗,我想用批处理
发表于 2010-8-16 20:50:02 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. set "T=%cd%"
  3. echo.http://pli6.999pcs.com/yinge06/lj/bbs/ShowPost.asp?ThreadID=406>1.txt
  4. echo.c:\ssdw;jfd\sdfl23\ddd>>1.txt
  5. for /f "tokens=* delims=" %%a in ('type 1.txt') do (
  6. set "TT=%%~dpa"
  7. set "TT=!TT:%T%=!"
  8. set "TT=!TT:\http:\=http:\\!"
  9. if "!TT:~,4!"=="http" set "TT=!TT:\=/!"
  10. echo !TT!
  11. )




  12. pause
  13. exit
复制代码
发表于 2010-8-17 11:24:31 | 显示全部楼层
可以生成反序来取啊,不就是第一个吗
发表于 2010-8-17 13:28:07 | 显示全部楼层
  1. @echo off
  2. for /f "delims=" %%a in (1.txt) do (
  3.     set "strOri=%%a"
  4.     setlocal enabledelayedexpansion
  5.     call :Rev "!strOri!"
  6.     set "strCut=/!strRev:*/=!"
  7.     call :Rev "!strCut!"
  8.     echo,!strRev!
  9.     endlocal
  10. )
  11. goto :eof

  12. :Rev
  13. set "strArg=%~1"
  14. set strLen=0
  15. for /f "skip=1 delims=:" %%i in ('^(echo "!strArg!"^&echo.^)^|findstr /o ".*"') do (
  16.     set /a strLen=%%i-5
  17. )
  18. set /a strPoint=strLen-1
  19. set strRev=
  20. for /l %%i in (!strPoint!,-1,0) do (
  21.     set strRev=!strRev!!strArg:~%%i,1!
  22. )
  23. goto :eof
复制代码
发表于 2010-8-17 23:31:58 | 显示全部楼层
  1. @echo off
  2. set "lj=%cd%"
  3. for /f "delims=" %%a in (a.txt) do (
  4.    set str=%%~dpa
  5.    setlocal enabledelayedexpansion
  6.    echo !str:*%cd%\=!
  7.    endlocal
  8. )
  9. pause
复制代码
 楼主| 发表于 2010-8-20 14:23:03 | 显示全部楼层
有个问题,发现随风提出来的成了这样的 http:\pli6.999pcs.com/yinge06/lj/bbs/而不是这样的 http://pli6.999pcs.com/yinge06/lj/bbs/   
双斜杠变成了反向的单斜杠。所以很多网址打不开
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 12:41 , Processed in 0.019821 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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