[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理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 是否存在想等的情况
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-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的值来决定是检查磁盘还是关机
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher


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

TOP

回复 4# Batcher


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

TOP

返回列表