首页 > 解决方案 > 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)。

标签: batch-file

解决方案


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"

推荐阅读