if语句格式:
if 条件 (
满足条件执行语句
) else (
不满足条件执行语句
)
·············································
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
用法:
@echo off
if "A" equ "A" echo equ ok A等于A满足
if "A" == "A" echo equ ok
if /I "A" equ "a" echo equ ok 不区分大小写
if 100 equ 100 echo equ ok
if 100 == 100 echo equ ok
if %errorlevel%==""
::%errorlevel%是判断上一条命令是否执行成功,成功返回0,失败返回1
···············································
判断变量是否为一个值
@echo off
::if-else结构
set a=%1%
if %a% == hello (echo ok) else (echo no)
pause > nul
判断文件是否存在 exist
@echo off
::if判断文件是否存在
chcp 65001 >nul
if exist E:\工作\记事本.sh2 (echo yes
) else (echo no)
pause > nul
比大小
@echo off
::if判断输入变量的大小
chcp 65001 >nul
::输入第一个变量no1
set /p no1=no1=
::输入第二个变量no2
set /p no2=no2=
::判断
if %no1% gtr %no2% (
echo no1大
) else (
if %no1% equ %no2% (
echo no1等于no2
) else (
echo no2大)
)
pause > nul
删除指定目录下所有txt文件
@echo off
chcp 65001>nul
for /d %%a in (test\*) do dir %%a\*.txt && del %%a\*.txt /a && echo 已删除所有*.txt文件
pause>nul
该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列1 2 3 4 5,(5,-1,1)将产生序列(5 4 3 2 1)
FOR /L %variable IN (start,step,end) DO command [command-parameters]
for /l %%a in (1,1,5) do mkdir %%a ::批量创建1-5文件夹
for /l %%a in (50,1,60) do ping -n 2 -w 60 123.56.23.%%a > nul && echo 123.56.23.%%a
检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
for /r "F:\桌面\test\新建文件夹\" %%a in (*.txt) do echo %%a ::寻找目录下所有.txt文件
测试ip是否通
@echo off
chcp 65001>nul
set /p nnn=按回车开始……
set ip=%1%
for /l %%a in (50,1,52) do ping -n 2 -w 60 %ip%.%%a >nul && echo %ip%.%%a
echo 回车退出……
pause>nul
:test
mkdir 1
cd 1
goto test
这样几句代码就可以实现反复循环创建目录1
goto 是会在执行完上面的命令后,跳转到:test部分,就会反复执行
可以配合if使用
@echo off
if %os%==Windows_NT goto windows
if %os%==Linux goto linux
:windows
echo os is windows
goto end
:linux
echo os is not windows
goto end
:end
pause>nul
@echo off
chcp 65001>nul
cls
:adm
echo 1:用户查询
echo 2:进程查询
set /p xt=请选择(1/2):
if %xt%==1 goto user
if %xt%==2 goto jincheng
echo 请输入正确选择
goto adm
:user
set /p username=请输入用户名:
net user %username%
goto end
:jincheng
tasklist
echo.
echo.
echo 1通过image_name查询
echo 2通过PID查询
set /p b=请选择(1/2):
if %b%==1 goto imagename
if %b%==2 goto pid
goto jincheng
:imagename
set /p image=请输入服务名例如(哔哩哔哩.exe):
tasklist /fi "imagename eq %image%"
goto end
:pid
set /p pids=请输入pid号:
tasklist /fi "pid eq %pids%"
goto end
:end
pause>nul