[原标题:为什么批量%变量%中的小写值以大写形式返回?]
我有一个批处理文件,其中为变量声明了值:
SET myVar="something.lowercase"
但稍后在脚本中引用该变量时:
%myVar%
该值以的形式出现,导致特定命令无法正常工作。 (查看解决方案: 该问题在命令中是一个虚假的SOMETHING.LOWERCASE
"
,而大写字母是报告"失败"的方式
为什么以及在什么情况下会发生这种情况? 模拟 因为值没有被更改,而是报告失败的方式和失败是由于在传递的值中引入了"
(请参阅解决方案)
对于上下文,,如果它重要,它就会以这种方式调用:( 因为引入的"
导致检查失败而变得很重要混乱来自"找不到......"是大写的)
TASKLIST /FI "IMAGENAME eq %myVar%" 2>NUL | FIND /I /N "%myVar%">NUL
我怀疑这是在这个命令的上下文中发生的,但是不能确定并且不知道为什么。如果这是偶然的情况,我该如何减轻它? (查看解决方案)
提前谢谢。
感谢@ Campo' suggestion,通过删除"
来更改值,解决了问题,并且脚本现在正常运行。谢谢。
答案 0 :(得分:1)
您的问题是因为您不必要地在变量值中包含双引号。
因为您已包含TaskList
过滤器正在寻找的双引号:
"IMAGENAME eq "something.lowercase""
...并且您的Find
命令正在尝试匹配:
""something.lowercase""
修复方法是使用正确的语法来设置变量:
Set "myVar=something.lowercase"