CMD流程控制语句


瞧不起什么呢?批处理是简化的脚本语言好吗。

IF语句

if 判断语句
1. 判断文件或文件夹是否存在 if exist 语句
2. 判断某两个字符串是否相等 用 if "字符串1" == ”字符串2“ 语句
3. 判断某两个数值是否相等,用 if 数值1 equ 数值2 语句
4. 判断某个变量是否已经被赋值,用if defined str 语句
判定关系符
判断两个数值之间的大小关系
中文含义	关系符	
等于		 equ
大于		 gtr
大于或等于  geq
小于		 lss
小于或等于  leq
不等于     neq

CMD特殊字符

|命令管道符将第一条命令的结果作为第二个命令的参数来使用
&组合命令当第一个命令执行失败了,后边的命令继续执行
&&组合命令第一个命令失败后,后边的命令也不会执行
||组合命令当一条命令失败后才会执行第二条命令
例子
//1.判定文件或文件夹是否存在
@echo off
REM 
chcp 65001
cls
if exist F:\ (echo 存在D) else (echo 不存在D) 
pause
//2.判定字符串是否相等 /i 忽略大小写
@echo off 
if "hello"=="Hello" (echo A) else (echo B)
pause
//3.判定变量是否相等 /p 接受用户参数
@echo off 
set /p A="请输入字符串1"
set /p B="请输入字符串1"
if %A%==%B% (echo A) else (echo B)
pause
if实战案例
@echo off
Rem
chcp 65001
cls
if exist F:\it3 (echo 存在) else (md it3 & echo 创建成功)	
pause
type nul> 相当于 md

FOR循环

for
格式:FOR [参数] %变量名 IN (相关文件或命令)   DO 执行的命令

在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable(双百分号) cmd可用%variabl
for /r F:\ %i in (*.txt) do echo %i //查找F盘所有.txt后缀的文件 并输出出来

初级用法示例

//打印结果值
@echo off
for %%I in (A,B,C) do echo %%I
pause
for语句以逗号为分隔符,把 A,B,C 这个字符串切分成三个元素:A、B和C,
由此决定了do后的语句将会被执行3次; 

高级用法示例

//搜索当前目录下有哪些文件,不显示文件夹
@echo off

for %%i in (*.*) do echo "%%i"

pause
//搜索当前目录下所有文本文件
@echo off

for %%i in (*.txt) do echo "%%i"

pause
参数 /F (使用文件解析来处理命令输出、字符串及文件内容。)
参数 /d (参数只能显示当前目录下的目录名字)
这个参数主要用于目录搜索,不会搜索文件,/D 参数只能显示当前目录下的目录名字。
只会搜索指定目录下的目录,不会搜索再下一级的目录。
e.g
for /d %%i in (c:\*) do echo %%i --显示c盘根目录下的所有目录
for /d %%i in (???) do echo %%i --显示当前目录下名字只有1-3个字母的目录
参数 /R (搜索指定路径及所有子目录中与set相符合的所有文件)

格式:FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
此命令会搜索指定路径及所有子目录中与set相符合的所有文件,注意是指定路径及所有子目录。
1、set中的文件名如果含有通配符(?或*),
则列举/R参数指定的目录及其下面的所用子目录中与set相符合的所有文件,无相符文件的目录则不列举。
2、如果set中为具体文件名,不含通配符,则枚举该目录树(即列举该目录及其下面的所有子目录)
(并在后面加上具体的文件名),
而不管set中的指定文件是否存在。
for /r c:\ %%i in (*.exe) do echo %%i
--把C盘根目录,和每个目录的子目录下面全部的EXE文件都列出来了!!!!
e.g
for /r c:\ %%i in (boot.ini) do echo %%i --枚举了c盘所有目录
for /r d:\backup %%i in (1) do echo %%i --枚举d\backup目录
for /r c:\ %%i in (boot.ini) do if exist %%i echo %%i
--很好的搜索命令,列举boot.ini存在的目录
参数 /L (该集表示以增量形式从开始到结束的一个数字序列。可以使用负的 Step)
for /l  (1,1,10)
从1开始每次加1 直到加到10

GoTo 语句

goto 执行到这里会跳转

实例

goto variable

:variable
语法

扩展

脚本文件格式

@echo off

pause

中文乱码

//中文乱码是因为编码格式不同,笔记本使用的是UTF8,将其改为ANSI编码方式就行
@echo off
REM 
chcp 65001
cls
//开始写脚本
pause
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alaone的笔记整理

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值