使用另一个时引用变量

时间:2013-11-03 01:36:35

标签: string batch-file

我不确定标题应该是什么,但我的问题是当我运行以下内容时:

set "var=craftbukkit-1.6.4-R2.0"
set "search=craftbukkit"
set vnum=%var:%search%=%
echo %vnum%

它返回“搜索”但它应该返回版本号。

但是,如果我用实际的字符串替换变量,它确实有效:

set "var=craftbukkit-1.6.4-R2.0"
set vnum=%var:craftbukkit=%
echo %vnum%

返回“-1.6.4-R2.0”

如何引用变量%search%?

3 个答案:

答案 0 :(得分:3)

使用延迟扩展:

setlocal EnableDelayedExpansion
set "var=craftbukkit-1.6.4-R2.0"
set "search=craftbukkit"
set vnum=!var:%search%=!
echo %vnum%

答案 1 :(得分:1)

CALL set vnum=%%var:*%search%=%%

应从search删除所有字符(包括变量var的内容)并将结果分配给vnum

答案 2 :(得分:-4)

只需在你的vnum中添加一个加号

set vnum=%var:+%search%=%