一、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-hk/n/254099.html
微信掃一掃
支付寶掃一掃