标题: [文件操作] [已解决]批处理怎么使用set命令截取最后一次出现的字符呢? [打印本页]
作者: zfkzp 时间: 2011-6-23 16:12 标题: [已解决]批处理怎么使用set命令截取最后一次出现的字符呢?
大家好,今天在学习set命令,看来论坛里面的好多例子也练习过来。就是有一个问题想问一下,截取最后一次出现的字符呢?
举例:,已知有如下路径:- D:\winxp\i love bat\bathome!.bat
复制代码
要截取他的最后出现的\字符之前的路径,效果应该如下复制代码
请问用set命令的话,代码给怎么写?
先在此谢过了,Thank you!
作者: tmplinshi 时间: 2011-6-23 16:34
本帖最后由 tmplinshi 于 2011-6-23 16:55 编辑
- @echo off
- for %%i in ("D:\winxp\i love bat\bathome!.bat") do echo %%~dpi
- pause
复制代码
- @echo off
- set str=D:\winxp\i love bat\bathome!.bat
- set str_temp=%str%
- for %%i in ("%str:\=" "%") do set end=%%~i
- setlocal enabledelayedexpansion
- echo !str_temp:%end%=!
- pause
复制代码
作者: zfkzp 时间: 2011-6-23 16:52
2# tmplinshi
Thank you very much!
那要是截取最后出现的\之后的"bathome!.bat"呢?
作者: tmplinshi 时间: 2011-6-23 16:56
本帖最后由 tmplinshi 于 2011-6-23 16:59 编辑
2# tmplinshi
Thank you very much!
那要是截取最后出现的\之后的"bathome!.bat"呢?
zfkzp 发表于 2011-6-23 16:52
- for %%i in ("D:\winxp\i love bat\bathome!.bat") do echo %%~nxi
复制代码
在 for /? 的帮助中有这些用法的介绍。
作者: zfkzp 时间: 2011-6-23 17:00
4# tmplinshi
Thank you! 版主!- for %%i in ("D:\winxp\i love bat\bathome!.bat") do echo %%~nxi
复制代码
用set也是同样的道理吗?
作者: tmplinshi 时间: 2011-6-23 17:08
指的是什么?
作者: zfkzp 时间: 2011-6-23 17:16
6# tmplinshi
刚才在看了一遍帖子,发现说错了。我的意思是楼主在2楼补充的那段,- for %%i in ("%str:\=" "%") do set end=%%~i
复制代码
对应到截取\之后的bathome,应该也是相同的道理吧?
如果是的话,又应该改哪里呢?请版主提示即可,我自己会动手的。
作者: tmplinshi 时间: 2011-6-23 17:26
7# zfkzp
你的意思是用 2 楼第二段代码的方法,来截取 bathome!.bat 吗?- @echo off
- set str=D:\winxp\i love bat\bathome!.bat
- for %%i in ("%str:\=" "%") do set end=%%~i
- echo %end%
- pause
复制代码
作者: zfkzp 时间: 2011-6-23 17:32
8# tmplinshi
对,就是这样!暂时没有问题了。真的很感谢版主的热心解答!
作者: applba 时间: 2011-6-23 19:20
这 不是 set的专用方法,在环境变量出现的任何地方都可以这样截取
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |