我想知道^<字符組合在我的情況下意味著什么。我已經知道這^<有助于解釋<為普通角色。但這意味著什么:
for /F %%i in ('^< !FILE! find /C /V ""') do set count=%%i
我想這段代碼計算了特定檔案中的行數,但我不確定這些字符。
謝謝,感謝您的所有幫助!
uj5u.com熱心網友回復:
for /F %%i in ('^< !FILE! find /C /V ""') do set count=%%i
你是對的,回圈用檔案中的行數for填充變數。%count%
的“通常”用法find是find /c /v "" file.txt(嘗試并記下輸出 - 不是僅獲取數字的好輸出)。
因此find從 STDIN 獲取其輸入:(<file.txt find /c /v ""再次嘗試并記下輸出 - 更好地捕獲)。必須轉義(使用 a )以免破壞回圈
的語法。<^for
括號中的部分在單獨的實體中運行,cmd您需要<在該實體中,而不是在原始實體中。轉義強制<在原始實體中被視為“普通字符”。轉義字符在第一次決議時被洗掉,將普通(未轉義)<發送到第二個實體,在那里它會做它應該做的事情。- 將檔案內容重定向到 STDIN。
您也可以通過使用雙引號而不是插入符號轉義字符來做同樣的事情(感謝@Compo 的建議):
for /F %%i in ('"< !FILE! find /C /V """') do set count=%%i
引號中的字串的決議不那么嚴格。如果您對更深入的解釋感興趣- 請注意 - 這很難......
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/507892.html
