Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 使用另一个变量时引用一个变量_String_Batch File - Fatal编程技术网

String 使用另一个变量时引用一个变量

String 使用另一个变量时引用一个变量,string,batch-file,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

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

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%?

只需在vnum中添加一个加号即可

set vnum=%var:+%search%=%
应从var中删除变量搜索内容之前的所有字符,并将结果分配给vnum

使用延迟扩展:

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