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

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

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

1

评分人数

TOP

没必要计算斜杠或反斜杠个数
  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
复制代码
1

评分人数

TOP

返回列表