一、cmdfor循環嵌套
cmdfor循環是在cmd命令行中經常使用的命令,它可以用來循環執行一些重複性的操作,比如批量處理文件、列印文本等。而cmdfor循環的嵌套則更加靈活和強大,可以實現不同層次、不同方式的循環。下面我們以兩個例子來展示cmdfor循環的嵌套:
1. cmdfor循環嵌套列印九九乘法表
@echo off for /l %%i in (1,1,9) do ( for /l %%j in (1,1,%%i) do ( set /a result=%%i*%%j echo.|set /p="%%j*%%i=%%result%% " ) echo. )
上述代碼中,外層循環從1到9,內層循環從1到外層循環變數的值,這樣就可以列印出九九乘法表。set /a是用來執行數學表達式的命令,%表示變數擴展,因此%%表示變數名稱。echo.|set /p實現了不換行列印信息的功能,從而呈現行列整齊的九九乘法表。
2. cmdfor循環嵌套重命名文件
@echo off setlocal enabledelayedexpansion set n=1 for /r %%i in (*.jpg) do ( set filename=%%i ren "!filename!" "!n!.jpg" set /a n=n+1 )
上述代碼中,使用for /r可以遍歷指定目錄及其子目錄下所有的圖片文件(.jpg擴展名),對每個文件執行重命名操作。其中,filename變數用於存儲每個文件名,!filename!表示變數擴展,因此需要啟用延遲變數擴展。!n!表示延遲擴展的變數n,初值為1,每遍歷到一個文件就增加1,實現了文件名的遞增命名。
二、cmdfor循環建文件夾a1到a10
除了嵌套,cmdfor循環還可以用來批量創建、刪除等文件或文件夾操作。下面我們以一個示例演示如何使用cmdfor循環批量創建文件夾:
cmdfor循環建文件夾a1到a10
@echo off for /l %%i in (1,1,10) do ( md a%%i echo 創建a%%i文件夾成功! )
上述代碼中,使用for /l生成1到10之間的整數,作為文件夾名的後綴。md是創建文件夾的命令,%%i表示循環變數。在每次創建成功後,使用echo命令輸出提示信息。
三、cmdfor循環和條件判斷
除了常規的循環,cmdfor循環還可以通過加入if語句等條件判斷語句,實現更多複雜的功能。下面我們以一個示例演示如何使用cmdfor循環和條件判斷語句實現文件名篩選:
cmdfor循環和條件判斷
@echo off setlocal enabledelayedexpansion set key=abc for %%i in (*.txt) do ( set filename=%%~ni if "!filename:%key%=!" neq "!filename!" ( echo %%i ) )
上述代碼中,使用for遍歷當前文件夾下所有的文本文件,將文件名存儲到filename變數中。然後使用if語句判斷文件名是否包含指定的關鍵字(這裡為abc),如果包含則使用echo命令輸出該文件名。
四、cmdgoto循環
cmdgoto循環是一種常用的無限循環方式,它可以通過條件判斷語句實現跳出循環的功能。下面我們以一個示例演示如何使用cmdfor循環和cmdgoto循環組合實現選取指定文件的功能:
cmdgoto循環選取指定文件
@echo off setlocal enabledelayedexpansion set key=abc set flag=0 :loop set /a flag=flag+1 if !flag! gtr 5 goto end set /p filename=請輸入文件名: if "!filename:%key%=!" neq "!filename!" ( echo 選定文件為:!filename! goto end ) else ( echo 未找到指定文件,請重新輸入! goto loop ) :end
上述代碼中,flag變數用於標記循環次數,初值為0。使用set /p命令讓用戶輸入文件名,並將輸入的文件名存在filename變數中。然後使用if語句判斷文件名是否包含指定的關鍵字,如果包含則使用echo命令輸出選定的文件名,然後跳出循環;否則提示用戶重新輸入文件名,並通過goto loop語句返回到指定的標籤,重新執行輸入操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/254099.html