windows - 为什么批处理 %variable% 中传递的值未正确应用?
问题描述
[原标题:为什么批处理 %variable% 中的小写值返回为大写?]
健康)状况
我有一个批处理文件,其中为变量声明了值,如下所示:
SET myVar="something.lowercase"
但是稍后在脚本中当您这样引用该变量时:
%myVar%
该值的出现导致特定命令无法正常工作。(请参阅解决方案: 问题是命令中的虚假问题SOMETHING.LOWERCASE
"
,大写是报告“失败”的方式)
关心
为什么以及在什么情况下会发生这种情况? 没有意义 ,因为值没有被更改,而是报告失败的方式,失败是由于"
在传递的值中引入了一个(参见解决方案)
语境
对于上下文,如果它很重要,它会以这种方式被调用:(事实证明这很重要,因为引入"
导致检查失败并且混淆来自“找不到......”是大写的)
TASKLIST /FI "IMAGENAME eq %myVar%" 2>NUL | FIND /I /N "%myVar%">NUL
我怀疑这是在此命令的上下文中以某种方式发生的,但不能确定也不知道为什么。如果这是偶然的情况,我该如何减轻它?(见决议)
先感谢您。
解析度
感谢@Campo 的建议,通过删除已解决的问题来更改值,"
并且脚本现在可以正常运行。谢谢你。
解决方案
您的问题是因为您在变量值中不必要地包含双引号。
因为您已经包含了TaskList
过滤器正在寻找的双引号:
"IMAGENAME eq "something.lowercase""
...并且您的Find
命令正在尝试匹配:
""something.lowercase""
解决方法是使用正确的语法来设置变量:
Set "myVar=something.lowercase"
推荐阅读
- python - Python,“[i]”附近的Sqlite:语法错误错误
- javascript - 这个 JavaScript 表达式是什么意思?
- reactjs - 使用 ReactJS 和 useEffect 单击时无法暂停间隔
- twilio - Twilio 在使用循环重复语音通话时有暂停期
- postgresql - 设置 Kubernetes 集群并运行数据库
- javascript - 我们不能在 React.js 的数组中迭代 material-ui 吗?
- c++ - 如何打印 NXN 框的对角线?检查我的代码?
- reactjs - 使用 useEffect 清理先前组件的 React Redux 双挂载
- python - 为 Django 组中的用户分配权限
- python - 避免 Zipfile.write 中的日期更改