在此命令中:
FOR /F %%A IN ('TYPE "%InFile%"^|find /v /c ""')DO SET "Till=%%A"
^
是什么意思?
答案 0 :(得分:20)
^符号(也称为插入符号或限制符号)是批处理脚本中的转义字符。使用它时,下一个字符被解释为普通字符。
在您的脚本中,TYPE命令的输出将被写为FIND命令的输入
如果您不在|
之前使用转义字符^,则|
的常规含义为pipe character。
要在使用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