标题: [文本处理] 批处理if语句判断字符串是否相同 [打印本页]
作者: lihui612ld 时间: 2019-8-12 09:15 标题: 批处理if语句判断字符串是否相同
本帖最后由 lihui612ld 于 2019-8-12 09:37 编辑
if "%%b%%c" == "%%d%%e" (echo 检查磁盘分区) else (echo. 关机了) 我这是要判断获取的变量 b c d e 是否存在想等的情况,(b c d e 会有几组数据),我需要判断每一组数据是否存在想等的情况,如果这些数据中有任意一组想等,则echo 检查磁盘分区,如果没有哪一组数据相等,则echo 关机了,功力有限,写不出来,求各位指点
作者: Batcher 时间: 2019-8-12 09:34
请举例说明一下什么是判断获取的变量 b c d e 是否存在想等的情况
作者: lihui612ld 时间: 2019-8-12 09:41
本帖最后由 lihui612ld 于 2019-8-12 09:59 编辑
回复 2# Batcher
@echo off
for /f "skip=1 tokens=2,4-7" %%a in ('echo list disk^|diskpart^|find "磁盘"') do (
if not "%%b%%c" == "%%d%%e" (echo 关机了) else (echo. 请检查磁盘)
)
我这里用了for来判断是否存在空盘,如果存在就显示检查磁盘,如果不存在就显示关机了,这里的变量 b c d e 是多组数据,需要判断如果有任意一组数据存在bc==de则显示检查磁盘,如果都不相等则显示关机了,这个脚本就是因为在for循环里面,每次都会执行几个echo
作者: Batcher 时间: 2019-8-12 10:07
回复 3# lihui612ld - set flag=0
- for /f "skip=1 tokens=2,4-7" %%a in ('echo list disk^|diskpart^|find "磁盘"') do (
- if "%%b%%c" == "%%d%%e" (
- set flag=1
- )
- )
复制代码
for循环外面通过检查flag的值来决定是检查磁盘还是关机
作者: lihui612ld 时间: 2019-8-12 10:15
回复 4# Batcher
历害,可以实现了,能说下为什么这样写就可以吗?
作者: lihui612ld 时间: 2019-8-12 12:14
回复 4# Batcher
了解了,我之前是把变量传出来然后判断其值是否想等,但是变量是变化的,而且有多组值,所以才会执行几次ECHO,而这里是相等的情况下才赋值给flag,这里的flag就只会有一组数值,果然思路很重要
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |