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