//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