[英]What does symbol ^ mean in Batch script?
在這個命令中:
FOR /F %%A IN ('TYPE "%InFile%"^|find /v /c ""')DO SET "Till=%%A"
^
是什么意思?
插入符號“^”字符在 Windows 批處理文件中有兩個用途:
1. 線路延續:
~~~
@echo off
dir ^
/ad ^
c:\temp
~~~~
結果是 dir /ad c:\\temp,它只列出 C:\\temp 中的目錄。
2. 轉義保留的 shell 字符 & | ( < > ^.
使用前面的脫字符來轉義並打印字符:
echo this pipe will print ^| but this one won't |
echo and this will print one caret ^^
無限遞歸描述了^
的一般行為,但對於為什么必須在IN ('yourCommand')
使用它有點模糊。
yourCommand
實際上是在它自己的 CMD.EXE 進程中使用C:\\Windows\\system32\\cmd.exe /c yourCommand
隱式執行的。 顯然,在您的情況下,管道必須包含在命令中。 但是整行必須由批處理解析器解析,然后才能將 IN() 子句傳遞給執行。 沒有^
, |
混淆批處理解析器。 ^
在初始批處理解析期間轉義(保護)管道。
在給定的示例中,插入符號用於轉義特殊符號。 雖然它在 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.