Cmd实现循环调用

cmd是windows的命令,可以辅助我们做很多事情,今天实现一个调用一个程序n次的实例:

1
2
3
4
5
6
7
8
9
10
@echo off
taskkill /f /im xxxx.exe # 删除某个进程
set n=0
:run
set /a n=%n%+1
echo%n%调用
timeout 1
if %n% equ 5 exit
goto run

基础知识


if的几种格式

  1. 判断两个字符串是否相等,if “字符串1”==”字符串2” command 语句;
  2. 判断两个数值是否相等,if 数值1 equ 数值2 command 语句;
  3. 判断判断驱动器,文件或文件夹是否存在,if exist filename command 语句;
  4. 判断变量是否已经定义,if defined 变量 command 语句;
  5. 判断上个命令的返回值,if errorlevel 数值 command 语句。

set的使用

在上面的代码中set n=0 是代表定义一个变量n,值为0 ,在引用的时候直接使用%n%

set /a n=%n%+1 /a 参数会把等号右边当成一个表达式,常用的表达式都支持。

set 还有一个/p的参数,是让用户来输入对应的值。例如:

1
2
3
4
5
@echo off
请输入变量的值:
set /p v=
echo %v%
pause

goto的使用

goto分成两个地方,一个地方是定义要执行的代码块,如例子中的:run

goto run 代表是从run后面开始执行。

for循环的使用

for是cmd的循环命令,常用的参数有/l ,例如:

1
2
3

for /l %x in (1, 1, 100) do echo hello%x

代表从1开始,每次增加1,直到100为止。

for循环后面需要用do 来表示循环体内的动作,括号用()

1
2
3
4
5
6
@echo off
for /l %%x in (1, 1, 5) do (
timeout 1
start test.bat
)
pause