标题: [其他] 批处理如何实现对字符串进行截取后并赋值给变量? [打印本页]
作者: 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
- @echo off
- set s="D:\1\2\111\aaa.jjj.zzz.txt"
- for %%a in (%s%) do set a=%%~a
- for %%a in (%a%) do set b=%%~na
- echo.%b%
- pause
复制代码
作者: lxzzr 时间: 2009-7-17 19:18 标题: 回复 1楼 的帖子
这样“截取”?
- @echo off
- set path_="D:\1\2\111\aaa.jjj.zzz.txt"
- set a=%path_:"=%
- set b=%a:~11,11%
- echo %b%
- 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 |