cmdfor循環的多面探析

一、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-hant/n/254099.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-14 17:40
下一篇 2024-12-14 17:40

相關推薦

  • Python定義兩個列表的多面探索

    Python是一種強大的編程語言,開放源代碼,易於學習和使用。通過Python語言,我們可以定義各種數據類型,如列表(list)。在Python中,列表(list)在處理數據方面起…

    編程 2025-04-29
  • 探析.polldelay

    本文將會從多個方面探討.polldelay的用途和實現方法,旨在幫助讀者更好地理解和應用.polldelay。 一、polldelay 簡介 Polldelay (polling …

    編程 2025-04-28
  • 象棋算法思路探析

    本文將從多方面探討象棋算法,包括搜索算法、啟發式算法、博弈樹算法、神經網絡算法等。 一、搜索算法 搜索算法是一種常見的求解問題的方法。在象棋中,搜索算法可以用來尋找最佳棋步。經典的…

    編程 2025-04-28
  • Python中中括號里數字的多面

    本文將從多個方面對Python中中括號里數字做詳細的闡述,包括索引、切片、循環等,以及一些常見問題的解決方法。 一、索引操作 索引操作指的是通過中括號里的數字來訪問列表(list)…

    編程 2025-04-28
  • Python命令行執行的多面探秘

    一、基礎操作 Python是一種通用編程語言,可以在命令行中運行。做到這一點的最簡單方法是打開命令行窗口,鍵入Python,然後按Enter。這將帶您到Python提示符里。 $p…

    編程 2025-04-24
  • 探析Webpack構建流程

    一、初識Webpack Webpack是一個模塊打包器,它可以把多個零散的模塊打包成一個文件,通過模塊打包的方式,實現JS、CSS、圖像等資源的依賴管理和按需加載。Webpack可…

    編程 2025-04-23
  • 從多個方面探析IoT架構

    一、IoT架構基礎 IoT(物聯網)架構的核心在於通過物聯網平台將各種物聯網設備、系統、數據等連接在一起,進行統一管理、控制、協議轉換、數據轉換和數據分析等工作,實現信息的物理化、…

    編程 2025-04-23
  • 科普 | np.tanh的多面向探究

    一、簡介 np.tanh是numpy庫中的一個函數,常被用來處理神經網絡中的激活函數,或者數學中的一些複雜計算。tanh即雙曲正切函數。 二、單變量情形 首先,我們看下單變量tan…

    編程 2025-04-18
  • 深入探析vector添加元素

    一、初始化vector 1、動態初始化vector 使用vector時,我們需要先將其初始化,vector可以有多種初始化方式。其中動態初始化是指我們需要在程序運行時才能確定vec…

    編程 2025-04-12
  • CSS工具的多面分析

    一、CSS預處理器 CSS預處理器是建立在CSS基礎之上的語言,通過模塊化、變量、函數、繼承等特性簡化CSS編寫流程,例如: .btn { background: #3ed8a6;…

    編程 2025-04-12

發表回復

登錄後才能評論