Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
Batch file 在批处理的变量子字符串中使用变量_Batch File - Fatal编程技术网

Batch file 在批处理的变量子字符串中使用变量

Batch file 在批处理的变量子字符串中使用变量,batch-file,Batch File,所以我想通过一个单独设置的变量,number从test字符串中提取2和3。但当我尝试这样做时,它会输出:2它应该在哪里输出23。任何建议都有帮助,谢谢 SET test=123 SET number=2 SET two=%test:~1,%number%% ECHO two 要解决此问题,必须使用SETLOCAL EnableDelayedExpansion和而不是%对于SET语句,如下所示 SET t=!test:~1,%number%! 如果我理解正确的话,使解释器读取test:~1

所以我想通过一个单独设置的变量,
number
test
字符串中提取2和3。但当我尝试这样做时,它会输出:
2
它应该在哪里输出
23
。任何建议都有帮助,谢谢

SET test=123
SET number=2

SET two=%test:~1,%number%%

ECHO two

要解决此问题,必须使用
SETLOCAL EnableDelayedExpansion
而不是
%
对于
SET
语句,如下所示

SET t=!test:~1,%number%!

如果我理解正确的话,
使解释器读取
test:~1,%number%
而不是之前分别读取
test:~1
number
,因为解释器认为表达式是关闭的,因为使用了两个
%
符号。另一方面,由于成对的
%
符号,它认为您指的是两个表达式。感谢Aacini的链接帮助我找到了解决方案

阅读网站上的解释。虽然主题不同,但解决方案是相同的…你以前问过同样类型的问题。是的。与您的一个相同的概念<代码>设置运算符=!操作员[%operator%]谢谢,我问了另一个关于不同代码位的特定功能的问题,是不是搞错了?我可以请你投票表决吗?