找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 32535|回复: 5

[文本处理] 批处理if语句判断字符串是否相同

[复制链接]
发表于 2019-8-12 09:15:01 | 显示全部楼层 |阅读模式
本帖最后由 lihui612ld 于 2019-8-12 09:37 编辑

if  "%%b%%c" == "%%d%%e" (echo 检查磁盘分区) else (echo. 关机了) 我这是要判断获取的变量 b c d e 是否存在想等的情况,(b c d e 会有几组数据),我需要判断每一组数据是否存在想等的情况,如果这些数据中有任意一组想等,则echo 检查磁盘分区,如果没有哪一组数据相等,则echo 关机了,功力有限,写不出来,求各位指点
发表于 2019-8-12 09:34:56 | 显示全部楼层
请举例说明一下什么是判断获取的变量 b c d e 是否存在想等的情况
 楼主| 发表于 2019-8-12 09:41:25 | 显示全部楼层
本帖最后由 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
发表于 2019-8-12 10:07:26 | 显示全部楼层
回复 3# lihui612ld
  1. set flag=0
  2. for /f "skip=1 tokens=2,4-7" %%a in ('echo list disk^|diskpart^|find "磁盘"') do (
  3.     if "%%b%%c" == "%%d%%e" (
  4.         set flag=1
  5.     )
  6. )
复制代码
for循环外面通过检查flag的值来决定是检查磁盘还是关机
 楼主| 发表于 2019-8-12 10:15:20 | 显示全部楼层
回复 4# Batcher


   历害,可以实现了,能说下为什么这样写就可以吗?
 楼主| 发表于 2019-8-12 12:14:23 | 显示全部楼层
回复 4# Batcher


    了解了,我之前是把变量传出来然后判断其值是否想等,但是变量是变化的,而且有多组值,所以才会执行几次ECHO,而这里是相等的情况下才赋值给flag,这里的flag就只会有一组数值,果然思路很重要
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 08:21 , Processed in 0.017582 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表