批處理之for命令[通俗易懂]

大家好,很高興再次與大家見面,我是你們的朋友全君。

for命令是cmd中最強大的命令之一,主要用于執行迭代任務。

以下是關于for命令語法的參考,建議大家對照中英文閱讀,因為有些中文翻譯可能不夠清晰,直接看英文原文會更容易理解。

https://www.php.cn/link/4b3ac70a62256956d9de54849321c78d

基本語法: for命令的基礎語法如下:

for %i|%%i in (set) do command  [commandlineoptions]

其中,%i|%%i為在for中使用的迭代變量。即使在后面的command命令中沒有使用到變量%i,變量也是必須聲明的。變量名可以使用除%0~%9之外的任意字母,例如%j,%k,%l都是合法的。set表示一個需要for循環進行搜索的集合,可以是字符串、文件路徑或一系列的值,set中可以使用通配符 ‘*’ 和 ‘?’。如果直接在命令行中輸入,使用%i;如果是寫在批處理文件中,則需要寫作%%i。for語句中的變量名是區分大小寫的,%i和%I會被視為不同的變量。command表示在每次循環中執行的命令,commandlineoptions表示某些command命令在運行時使用的開關參數,為非必要參數。下面是一個基本用法的實例。在我們的e:test路徑中存在一些文件,我們可以使用for循環來搜索此路徑中的所有文件,并打印出文件名。

for %i in (e:test*.txt) do @echo %i

批處理之for命令[通俗易懂] 該命令的執行效果如圖所示,會列出該目錄中所有txt類型的文件,并打印文件名。

或者使用for來迭代一系列的值,實例如下:

批處理之for命令[通俗易懂]

擴展語法: 在啟用命令擴展的情況下(默認為啟用狀態),for會有如下幾種額外的形式支持:

  • 僅目錄查找

    for /d {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>]
  • 迭代目錄

    for /r [[<drive>:]<path>] {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>]
  • 迭代一系列值

    for /l {%%|%}<variable> in (<start>,<step>,<end>) do <command> [<commandlineoptions>]
  • 文件,字符串解析

    for /f [<parsingkeywords>] {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>] for /f [<parsingkeywords>] {%%|%}<variable> in (<literalstring>) do <command> [<commandlineoptions>] for /f [<parsingkeywords>] {%%|%}<variable> in ('<command>') do <command> [<commandlineoptions>]

for /f的語法較為復雜,理解起來有一定的難度。for /f中的解析關鍵字[parsingkeywords]允許使用下面的形式:

批處理之for命令[通俗易懂]批處理之for命令[通俗易懂] eol指定在解析文本文件的行結束符,delims指定解析文件時使用的分隔符,默認的分隔符為空格或制表符,tokens指定在每行中要傳遞給%i的標記的索引,如果制定了多個標記,for語句會分配額外的變量來接受內容,如果最后一個標記為,for會多分配一個額外的字符串接收之后的字符串內容。實例如下: 在我的電腦的e盤的test目錄中存在一個zhang2.txt的文件,文件的內容如下:

批處理之for命令[通俗易懂] 我們使用下面的for /f語句來解析該文件的內容:

批處理之for命令[通俗易懂]批處理之for命令[通俗易懂] 還有更多的用法可以嘗試。

發布者:全棧程序員棧長,轉載請注明出處:https://www.php.cn/link/6f7790bb54a7c5d3dea27385488a604a

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享