1

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

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

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

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

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

这将返回“-1.6.4-R2.0”

如何引用变量 %search%?

4

3 回答 3

3

使用延迟扩展:

setlocal EnableDelayedExpansion
set "var=craftbukkit-1.6.4-R2.0"
set "search=craftbukkit"
set vnum=!var:%search%=!
echo %vnum%
于 2013-11-03T04:56:27.220 回答
1
CALL set vnum=%%var:*%search%=%%

应该从中删除所有字符,包括(变量的内容searchvar并将结果分配给vnum

于 2013-11-03T03:29:08.780 回答
-4

只需为您的 vnum 添加一个加号

set vnum=%var:+%search%=%
于 2013-11-03T02:01:39.283 回答