Bat批处理脚本中的 if 语句

IF语句是在很多编程语言(包括c语言、C++、C#、java、VB、汇编语言等)中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。if的返回值为真或假。
Bat批处理脚本中的IF语句用来执行批处理程序中的条件处理。

1. if语句

语法格式:

IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command

参数说明:

  • NOT 只有NOT关键字后面的条件为false时,才执行后面的命令。

  • ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的退出代码,指定条件为 true。

  • string1==string2 如果字符串string1等于string2,指定条件为 true。

  • EXIST filename 如果指定的文件名存在,指定条件为 true。

  • command 如果符合条件,指定要执行的命令。如果指定的条件为 FALSE,命令后可跟 ELSE 命令,将执行 ELSE 关键字之后的命令。
    NOT参数实例:

@echo off
rem abc等于abc为true,输出ok
if  abc == abc    echo ok 
rem not后面的条件“abc == abc”成立(值为true)
rem 命令“echo ok”不能被执行
if not abc == abc    echo ok 
rem not后面的条件“abc == ab”不成立(值为false)
rem 命令“echo ok”被执行
if not abc == ab    echo ok 
pause

实例:

@echo off
set /p pwd=请输入密码:
if "%pwd%"=="12345" echo 密码正确
set /p pwd1=请输入密码:
if not "%pwd1%"=="12345" echo 错误的密码: %pwd1%
 
set file=D:\1.txt
if exist %file% echo %file% 文件存在
if not exist %file% echo %file% 文件不存在
 
rem 模拟测试 “ERRORLEVEL number” %ERRORLEVEL% 的结果大于等于指定值,表达式为true
opy 1.txt >nul 2>nul
if errorlevel 0 echo errorlevel=%errorlevel% 大于0,所以显示
if errorlevel 9010 echo errorlevel=%errorlevel% 小于9010,所以不显示
pause

运行结果:

2. if命令的5种用法

  • if “str1”==“str2” command 语句

    判断两个字符串是否相等

  • if “num1” equ “num2” command 语句

    判断两个数值是否相等

    判断两个数值之间的大小关系的其他关系符

中文含义关系符
EQU等于
NEQ不等于
LSS小于
LEQ小于或等于
GTR大于
GEQ大于或等于
  • if exist filename command 语句

    判断判断驱动器,文件或文件夹是否存在

  • if defined 变量 command 语句

    判断变量是否已经定义

  • if errorlevel 数值 command 语句

    判断上个命令的返回值

实例:if命令的5种用法

@echo off
rem 判断字符是否相等
if "abc"=="abc"  echo 字符串相等
rem 判断数值是否相等
if 5 NEQ 3 echo 5不等于3
rem 判断文件是否存在
if exist d:\1.bat (echo D盘下有1.bat存在) else (echo D盘下不存在1.bat)
rem 判断变量是否已定义
if defined str (echo 变量str已经被赋值,其值为%str%) else (echo 变量str的值为空)
rem 判断上个命令的返回值
if errorlevel 1 (echo %errorlevel%大于等于1) else (echo %errorlevel%小于1)
pause

运行结果:

3. if else语句

if-else 语句,用来处理 “如果条件为真,则执行命令1;否则,执行命令2”。

if 条件为真(
   命令1
)else(
   命令2
)

rem 语法格式:
IF EXIST filename. (
    del filename.
) ELSE (
    echo filename. missing.
)

del 命令需要用新的一行终止,因此以下子句不会有效:

IF EXIST filename. del filename. ELSE echo filename. missing

由于 ELSE 命令必须与 IF 命令的尾端在同一行上,以下子句也不会有效:

IF EXIST filename. del filename.
ELSE echo filename. missing

如果都放在同一行上,del filename.需要加上括号,以下子句有效:

IF EXIST filename. (del filename.) ELSE echo filename. missing

实例:输入年龄判断是否成年;下面是2个错误写法:

//错误写法1: if 条件 命令 else 命令在同一行
@echo off
set /p age=请输入你的年龄:
if %age% GEQ 18 echo 你的年龄为:%age% ,已经成年。 else echo 你的年龄为:%age% ,未成年。
pause

//错误写法2: else不在if命令同一行上
@echo off
set /p age=请输入你的年龄:
if %age% GEQ 18 echo 你的年龄为:%age% ,已经成年。 
else echo 你的年龄为:%age% ,未成年。
pause

正确写法:

@echo off
set /p age=请输入你的年龄:
if %age% GEQ 18 (
    echo 你的年龄为:%age% ,已经成年。
) else (
	   echo 你的年龄为:%age% ,未成年。
)
pause

注意:else和后面的(之间必须有一个空格,不然脚本不能正常运行。

在一行中,不能以else开头,会报错。

如果命令都要放在同一行上,可以将if条件判断后面的命令加上括号,但是阅读性差;

@echo off
set /p age=请输入你的年龄:
if %age% GEQ 18 (echo 你的年龄为:%age% ,已经成年。) else echo 你的年龄为:%age% ,未成年。
pause

运行结果:

4. if elseif else语句

if else只能处理2个条件分支,如果有多个条件就需要用到if elseif else语句;

实例:通过输入水果名称查水果价格

@echo off
set /p name=输入商品名称:
if "%name%" == "苹果" (
    echo 苹果的价格是5元/个!
) else if "%name%" == "香蕉" (
    echo 香蕉的价格是2元/根!
) else if "%name%" == "榴莲" (
    echo 榴莲的价格是40元/斤!
) else if "%name%" == "芒果" (
    echo 芒果的价格是8元/个!
) else (
    echo 无%name%的价格
)
pause
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Windows操作系统,我们经常需要修改DNS服务器地址,尤其是在一些网络环境下,需要手动更改DNS服务器地址比较麻烦,需要经过多个步骤才能完成。因此,我们可以编写一个Windows一键修改DNS批处理脚本.bat来实现快速修改DNS服务器地址的目的。 首先,我们需要打开bat文件编辑器,然后输入以下内容: echo off title 修改DNS服务器地址 ipconfig /flushdns echo 正在修改DNS服务器地址,请稍等... netsh interface ipv4 add dns "本地连接" 8.8.8.8 index=1 netsh interface ipv4 add dns "本地连接" 8.8.4.4 index=2 echo DNS服务器地址修改完成! pause 以上脚本语句实现了如下功能:先清除DNS缓存,然后添加两个DNS服务器地址,依次为8.8.8.8和8.8.4.4,并打印修改DNS服务器地址完成!最后,加入pause命令,让程序暂停,等待用户确认。 此时,我们可以将修改好的批处理脚本.bat文件保存在本地,然后找到文件夹,双击运行,即可实现一键修改DNS服务器地址,轻松快捷完成操作。 总的来说,Windows一键修改DNS批处理脚本.bat可以帮助我们快速地修改DNS服务器地址,节省时间和精力,提高操作效率,是非常实用的一个工具。 ### 回答2: Windows一键修改DNS批处理脚本(.bat)是一种可自动批量修改Windows系统DNS设置的工具。使用这种脚本能够方便地将多台计算机的DNS地址改为指定的服务器地址,从而提高网络访问速度和安全性。以下是编写此脚本的步骤: 首先,打开文本编辑器,如记事本或Notepad++等,创建一个空白文本文件。然后,将以下代码粘贴到文本文件: @echo off netsh interface ip set dns name="以太网" source=static addr=192.168.1.1 echo DNS地址已成功修改。 pause 其,以太网是网络适配器的名称,addr为你的DNS服务器的IP地址。这里的代码是为了设置DNS服务器地址为192.168.1.1。 保存文件时,确保将文件扩展名设置为.bat。例如,将文件名保存为“dns.bat”。 运行该脚本时,双击该.bat文件即可。它将自动修改计算机的DNS服务器设置,然后显示一个“DNS地址已成功修改”的消息。用户按任意键即可退出该脚本。 如果需要修改多台计算机的DNS地址,可以将此批处理脚本复制到每个计算机上,以便进行快速的修改。 ### 回答3: Windows一键修改DNS批处理脚本.bat可用于快速更改计算机的DNS设置,以便更轻松地访问互联网。此脚本通过命令行调用Windows命令行工具来完成这个任务。 首先,需要在脚本指定所需的DNS服务器的IP地址。可以将这些地址添加到脚本文件,或者作为参数传递给脚本。 然后,脚本使用netsh命令来配置计算机的DNS设置。这个命令需要管理员权限才能运行,因此,脚本需要在管理员身份下启动。使用以下命令可以实现: ``` netsh interface ip set dns "本地连接" static DNS地址 ``` 其,DNS地址是指所需的DNS服务器的IP地址,可以是多个。 脚本还可以添加一些用户友好的选项,例如询问用户是否要还原默认DNS设置等。这些选项可以使用批处理编程的IF语句和GOTO语句实现。 总的来说,Windows一键修改DNS批处理脚本.bat是一个简单但实用的工具,可以帮助计算机用户更轻松地管理他们的网络设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ITPro进化论

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

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

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

打赏作者

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

抵扣说明:

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

余额充值