一、cmd for循环嵌套
cmd for循环是在cmd命令行中经常使用的命令,它可以用来循环执行一些重复性的操作,比如批量处理文件、打印文本等。而cmd for循环的嵌套则更加灵活和强大,可以实现不同层次、不同方式的循环。下面我们以两个例子来展示cmd for循环的嵌套:
1. cmd for循环嵌套打印九九乘法表
@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. cmd for循环嵌套重命名文件
@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,实现了文件名的递增命名。
二、cmd for循环建文件夹a1到a10
除了嵌套,cmd for循环还可以用来批量创建、删除等文件或文件夹操作。下面我们以一个示例演示如何使用cmd for循环批量创建文件夹:
cmd for循环建文件夹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命令输出提示信息。
三、cmd for循环和条件判断
除了常规的循环,cmd for循环还可以通过加入if语句等条件判断语句,实现更多复杂的功能。下面我们以一个示例演示如何使用cmd for循环和条件判断语句实现文件名筛选:
cmd for循环和条件判断
@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命令输出该文件名。
四、cmd goto循环
cmd goto循环是一种常用的无限循环方式,它可以通过条件判断语句实现跳出循环的功能。下面我们以一个示例演示如何使用cmd for循环和cmd goto循环组合实现选取指定文件的功能:
cmd goto循环选取指定文件
@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语句返回到指定的标签,重新执行输入操作。