batch-file - Windows 批处理文件 - 包含&符号的子字符串变量给出“......不被识别为内部或外部命令......”
问题描述
当我收到批处理文件的参数时。我想对参数执行一个子字符串。但是,如果参数有一个&符号,它会将&符号后面的字符串视为另一个命令。
工作示例:
@set var=TomJerry
@echo %var:~3%
失败的例子:
@set var=Tom&Jerry
@echo %var:~4%
'Jerry' is not recognized as an internal or external command, operable program or batch file.
我意识到我可以用 ^ 转义 & 符号,但我无法控制输入参数 (%1)。
解决方案
C:\>set "var=Tom&Jerry"
C:\>echo %var:~4%
Jerry
C:\>
诀窍是使用首选语法set "var=value"
(注意引号及其位置)
笔记:
C:\>echo %var%
Tom
Der Befehl "Jerry" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
但:
C:\>echo "%var%"
"Tom&Jerry"
推荐阅读
- angular - Angular 5:如何在子组件中获取父组件路由参数?
- spring - 邮递员 - 查看压缩响应大小的选项..?
- android - API > 22 的 TextInputLayout 线条颜色不会以编程方式更改
- mongodb - 如何制定正确的 mongo 查询以获取正确格式的记录
- javascript - 上传前的javascript预览图像
- python-3.x - 是否有 (void)x;python中的等价物?
- reactjs - 如何将 ReactJS 与 Magento 2 前端集成?
- chef-infra - 使用python比较不同版本的厨师食谱
- r - 在矩阵中使用 R 中的 rbinom 函数
- azure - 当并非所有数据库都有用户用于连接到服务器时,如何使用 SMO 列出 SQL Azure 服务器上的数据库?