符号^在批处理脚本中的含义是什么?

时间:2013-12-03 04:19:56

标签: windows batch-file

在此命令中:

FOR /F %%A IN ('TYPE "%InFile%"^|find /v /c ""')DO SET "Till=%%A"

^是什么意思?

4 个答案:

答案 0 :(得分:20)

^符号(也称为插入符号或限制符号)是批处理脚本中的转义字符。使用它时,下一个字符被解释为普通字符。

在您的脚本中,TYPE命令的输出将被写为FIND命令的输入 如果您不在|之前使用转义字符^,则|的常规含义为pipe character

Documentation说:

  

要在使用echo时显示管道(|)或重定向字符(<或>),请在管道或重定向字符前使用插入符号(例如,^>,^<,或^ |)。如果需要使用插入符(^),请键入两个(^^)。

答案 1 :(得分:14)

插入符'^'字符在Windows批处理文件中有两个用途:

<强> 1。行延续:

~~~

@echo off

dir ^
/ad ^
c:\temp

~~~~

导致dir / ad c:\ temp,它仅列出C:\ temp中的目录。

<强> 2。转义保留的shell字符&amp; | (&lt;&gt; ^。

使用前面的插入符来转义并打印字符:

echo this pipe will print ^| but this one won't |
echo and this will print one caret ^^

答案 2 :(得分:10)

Infinite Recursion describes the general behavior of ^,但为什么必须在IN ('yourCommand')内使用它有点模糊。

yourCommand实际上是使用C:\Windows\system32\cmd.exe /c yourCommand在其自己的CMD.EXE进程中隐式执行的。显然,管道必须包含在您的情况下的命令中。但是,整个行必须由批处理解析器解析,然后才能传递要执行的IN()子句。如果没有^|会混淆批量解析器。 ^在初始批处理解析期间转义(保护)管道。

答案 3 :(得分:0)

在给定的示例中,插入号用于转义特殊符号。 尽管它在Windows命令中还有其他用途

1]在设置中,它是XOR运算符:

set /a "_num=5^3"    &::0101 XOR 0011 = 0110 (decimal 6)

2]在findstr中,用于在行首查找字符串的正则表达式:

Echo 12G6 |FindStr /R "[^0-9]"  &::this will check for non-numeric characters