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

[文件操作] [已解决]批处理怎么使用set命令截取最后一次出现的字符呢?

[复制链接]
发表于 2011-6-23 16:12:37 | 显示全部楼层 |阅读模式
  大家好,今天在学习set命令,看来论坛里面的好多例子也练习过来。就是有一个问题想问一下,截取最后一次出现的字符呢?
举例:,已知有如下路径:
  1. D:\winxp\i love bat\bathome!.bat
复制代码
要截取他的最后出现的\字符之前的路径,效果应该如下
  1. D:\winxp\i love bat\
复制代码
请问用set命令的话,代码给怎么写?
先在此谢过了,Thank you!

评分

参与人数 1PB +2 收起 理由
tmplinshi + 2 感谢给帖子标题标注“[已解决]”字样

查看全部评分

发表于 2011-6-23 16:34:20 | 显示全部楼层
本帖最后由 tmplinshi 于 2011-6-23 16:55 编辑
  1. @echo off
  2. for %%i in ("D:\winxp\i love bat\bathome!.bat") do echo %%~dpi
  3. pause
复制代码
  1. @echo off
  2. set str=D:\winxp\i love bat\bathome!.bat
  3. set str_temp=%str%
  4. for %%i in ("%str:\=" "%") do set end=%%~i
  5. setlocal enabledelayedexpansion
  6. echo !str_temp:%end%=!
  7. pause
复制代码
 楼主| 发表于 2011-6-23 16:52:46 | 显示全部楼层
2# tmplinshi
Thank you very much!
那要是截取最后出现的\之后的"bathome!.bat"呢?
发表于 2011-6-23 16:56:44 | 显示全部楼层
本帖最后由 tmplinshi 于 2011-6-23 16:59 编辑
2# tmplinshi
Thank you very much!
那要是截取最后出现的\之后的"bathome!.bat"呢?
zfkzp 发表于 2011-6-23 16:52
  1. for %%i in ("D:\winxp\i love bat\bathome!.bat") do echo %%~nxi
复制代码
在 for /? 的帮助中有这些用法的介绍。
 楼主| 发表于 2011-6-23 17:00:55 | 显示全部楼层
4# tmplinshi

Thank you! 版主!
  1. for %%i in ("D:\winxp\i love bat\bathome!.bat") do echo %%~nxi
复制代码
用set也是同样的道理吗?
发表于 2011-6-23 17:08:46 | 显示全部楼层
用set也是同样的道理吗?
指的是什么?
 楼主| 发表于 2011-6-23 17:16:06 | 显示全部楼层
6# tmplinshi
刚才在看了一遍帖子,发现说错了。我的意思是楼主在2楼补充的那段,
  1. for %%i in ("%str:\=" "%") do set end=%%~i
复制代码
对应到截取\之后的bathome,应该也是相同的道理吧?
如果是的话,又应该改哪里呢?请版主提示即可,我自己会动手的。
发表于 2011-6-23 17:26:10 | 显示全部楼层
7# zfkzp


你的意思是用 2 楼第二段代码的方法,来截取 bathome!.bat 吗?
  1. @echo off
  2. set str=D:\winxp\i love bat\bathome!.bat
  3. for %%i in ("%str:\=" "%") do set end=%%~i
  4. echo %end%
  5. pause
复制代码
 楼主| 发表于 2011-6-23 17:32:34 | 显示全部楼层
8# tmplinshi
对,就是这样!暂时没有问题了。真的很感谢版主的热心解答!
发表于 2011-6-23 19:20:10 | 显示全部楼层
这 不是 set的专用方法,在环境变量出现的任何地方都可以这样截取
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 15:28 , Processed in 0.020682 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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