如何批量逃避`!$`?

时间:2016-06-29 14:33:51

标签: windows batch-file cmd special-characters

关于如何在cmd.exe中转义给定角色,StackOverflow上有很多问题。但是,似乎没有一种解决方案适用于我的情况。

基本上,我想要做的是将环境变量FOO设置为a!$5

我尝试了显而易见的事情:

set FOO=a!$5

给出了:

History expansion: set FOO=ae5

很公平,我想我必须逃离!$,或两者兼而有之。然而似乎没有任何效果。

我能做到:

echo a^!
a!

echo a$
a$

甚至:

echo a^$
a$

可是:

echo a^!$
History expansion: echo a^a^$
aa$

我不知道该怎么做。似乎无论我如何逃避特殊角色,我都无法得到我想要的结果。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

这显然是Clink中我在计算机上设置的错误。

我最终做了无聊但仍在工作:

set FOO=a!
set FOO=%FOO%$5

完美无缺。很伤心,但至少它适用于任何人。

答案 1 :(得分:0)

使用^ echo a^!^$5

逃离每个角色

a!$5

答案 2 :(得分:0)

不是答案,但是当我输入设置FOO = a!$ 5时,这正是我得到的。我认为它可能需要一个前任

  

Setlocal EnableDelayedExpansion

但它没有这样做(也许这是我的默认设置?)抱歉,我无法帮助!