Board logo

标题: [其他] 批处理如何实现对字符串进行截取后并赋值给变量? [打印本页]

作者: zxcs007    时间: 2009-7-17 19:01     标题: 批处理如何实现对字符串进行截取后并赋值给变量?

在批处理执行中我输入了一个路径(即看作字符串)"D:\1\2\111\aaa.jjj.zzz.txt",怎么去掉首尾的引号并赋值给一个变量呢(如赋值给变量a)?然后再截取变量a中aaa.jjj.zzz这段并赋值给一个变量呢?请各位前辈帮帮忙指点,谢谢。
作者: rat    时间: 2009-7-17 19:07

  1. @echo off
  2. set s="D:\1\2\111\aaa.jjj.zzz.txt"
  3. for %%a in (%s%) do set a=%%~a
  4. for %%a in (%a%) do set b=%%~na
  5. echo.%b%
  6. pause
复制代码

作者: lxzzr    时间: 2009-7-17 19:18     标题: 回复 1楼 的帖子

这样“截取”?
  1. @echo off
  2. set path_="D:\1\2\111\aaa.jjj.zzz.txt"
  3. set a=%path_:"=%
  4. set b=%a:~11,11%
  5. echo %b%
  6. pause
复制代码

[ 本帖最后由 lxzzr 于 2009-7-17 19:19 编辑 ]
作者: zxcs007    时间: 2009-7-17 19:44     标题: 回复 2楼 的帖子

呵呵 太感谢了,您的代码满足的需求。
我太菜了是个新手再请教一下:
for %%a in (%s%) do set a=%%~a
for %%a in (%a%) do set b=%%~na
这两行是什么意思能不能说的详细的点。
作者: zxcs007    时间: 2009-7-17 19:46     标题: 回复 3楼 的帖子

哈哈 感谢兄弟的热心帮助。
你代码可以实现我问题中的举例
但是这行set b=%a:~11,11%不具通用性。
作者: lxzzr    时间: 2009-7-17 19:48     标题: 回复 5楼 的帖子

还以为你要“截取”呢? 呵呵

set a=%%~a
rem 删除任何引号


set b=%%~na
rem 扩充到一个文件名


参考:FOR /?

[ 本帖最后由 lxzzr 于 2009-7-17 19:50 编辑 ]
作者: Lumiere    时间: 2009-7-18 14:03

看下for的帮助命令就明白了。




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