簡體   English   中英

批處理腳本中的符號 ^ 是什么意思?

[英]What does symbol ^ mean in Batch script?

在這個命令中:

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

^是什么意思?

^ 符號(也稱為插入符或抑揚符)是批處理腳本中的轉義字符。 使用時,下一個字符被解釋為普通字符。

在您的腳本中,TYPE 命令的輸出將作為 FIND 命令的輸入寫入。
如果您不在|之前使用轉義字符 ^ ,然后是|的常規含義是一個管道字符

文檔說:

要在使用 echo 時顯示管道 (|) 或重定向字符(< 或 >),請在管道或重定向字符之前使用插入符(例如, ^>、 ^< 或 ^| )。 如果需要使用插入符 (^),請鍵入兩個 (^^)。

插入符號“^”字符在 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM