如何在变量中包含管道?
问题描述:
我想把一个管道放在一个变量中。但是,我似乎无法。如何在变量中包含管道?
如果我这样做set elfheader=|ELF
,我只是得到:
“‘ELF’不被识别为一个内部或外部命令,可操作 程序或批处理文件。”
这是批处理执行字面意思。
我已经试过类似:
set elfheader=(
|ELF
)
,它不工作。
我知道为什么会这样,这是怎么一回事,因为批量字面上执行的东西,做到这一点(但是这不是我问的问题):
“好,呵呵,我们要设置一个变量当前(。噢,管道,所以设置(以及让我们去执行下一个命令。嗯......什么是“ELF”?什么?“
TL; DR /澄清,我试图把” ELF“在一个变量中,在批处理编程语言中,但它失败了,但它失败了,但是它失败了。我想要 避免这种情况。
答
假如你要指定的管字符|
一个变量,有两种选择:
-
要使用环绕整个赋值表达式引号:
set "elfheader=|ELF"
注意引号不会成为价值的一部分。让我推荐这种方法,因为它避免了其他特殊字符的空间处理;另外,这避免了在第二个
"
之后有一些后面的空间被追加。但是,该语法仅适用于启用command extensions的情况,无论如何这是默认情况。 -
要使用由字符
^
转义:set elfheader=^|ELF
这也适用于禁用命令扩展(这是很少的情况下,虽然),但你需要照顾为每一个特殊字符,像
^
,&
,<
,>
,|
,并且当所述命令行放置的代码,也(
,)
一个parenthesised块内,以及当delayed expansion被启用,也!
。
的可能的复制[什么是环境变量名和值vaild字符?(http://*.com/questions/20635695/what-are-vaild-characters-for-environment-variable-names - 值) – NineBerry
@NineBerry没有这个问题,对不起。 – 180Five
是的,答案就在那里。使用^作为转义字符 – NineBerry