批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[文本处理] 批处理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 关机了,功力有限,写不出来,求各位指点

请举例说明一下什么是判断获取的变量 b c d e 是否存在想等的情况
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

本帖最后由 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

TOP

回复 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的值来决定是检查磁盘还是关机
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

回复 4# Batcher


   历害,可以实现了,能说下为什么这样写就可以吗?

TOP

回复 4# Batcher


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

TOP

返回列表