Board logo

标题: [文本处理] 【已解决】批处理如何获取网址最后的字段? [打印本页]

作者: zhanglei1371    时间: 2018-3-1 08:56     标题: 【已解决】批处理如何获取网址最后的字段?

本帖最后由 zhanglei1371 于 2018-3-1 13:33 编辑

如下面的test.txt内容为网址:
jwc.ahmu.edu.cn/jpkc/07lcyl/kejian/123/13.pps
jwc.ahmu.edu.cn/jpkc/07lcyl/kejian/15.pps
jwc.ahmu.edu.cn//kejian/8.pps
jwc.ahmu.edu.cn/21.ppt
jwc.ahmu.edu.cn/jpkc/07lcyl/18.ppt
现使用如下代码进行变量的测试,结果发现有问题:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. pushd %~dp0
  4. set /a n=1
  5. ::========================代码区===========================%
  6. for /f "delims=" %%i in (test.txt) do (
  7. set str1=%%i
  8. REM =======================================================
  9. for  %%a in (!str1:/^=^ !) do (
  10. set /a  s+=1
  11. )
  12. %%p in ("!str1!") do echo %%p
  13. pause
  14. set s=0
  15. )  
  16. ::==================代码区===========================%
  17. echo 操作已完成!按任意键退出!&pause>nul
  18. exit/b
复制代码
就是这句:for /f "tokens=!s! delims=/" %%p in ("!str1!") do echo %%p,若是将!s!改成具体数字就没有问题。但是这样写就有问题,不知该如何修改?
谢谢各位!
参考了二楼的链接,改成这样就可以了:
  1. ..................
  2. echo s的值为:!s!
  3. call :F !s!
  4. :f tokens
  5. for /f "tokens=%1 delims=/"...........
复制代码

作者: ivor    时间: 2018-3-1 10:48

http://www.bathome.net/thread-47424-1-1.html
作者: WHY    时间: 2018-3-1 19:49

没必要计算斜杠或反斜杠个数
  1. @echo off
  2. for /f "delims=" %%i in (test.txt) do (echo;%%~nxi)
  3. pause
复制代码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (test.txt) do (
  4.     set "str=%%i"
  5.     for %%j in (!str:/^=^ !) do (set s=%%j)
  6.     echo;!s!
  7. )
  8. pause
复制代码





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