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

[其他] 【已解决】批处理如何判断特定卷标是否存在?

[复制链接]
发表于 2024-8-24 10:03:21 | 显示全部楼层 |阅读模式
本帖最后由 青青草 于 2024-8-24 21:40 编辑

批处理如何判断驱动器(有盘符)特定卷标(如DISK)是否存在?如果存在,则执行命令1,如果不存在,则执行命令2。
请哪位大神赐教!
谢谢!
发表于 2024-8-24 12:06:35 | 显示全部楼层
首先,存在如何定义?
单纯的以分配有盘符而视为存在?
还是说只要有ESP分区,就算其无盘符,被隐藏了,也视为存在?

其次,
echo list vol | diskpart
可以查看本机下所有分区,包含无盘符的分区。
接下来就看楼主怎么定义了。
 楼主| 发表于 2024-8-24 12:08:59 | 显示全部楼层
本帖最后由 青青草 于 2024-8-24 12:10 编辑

回复 2# ppll2030


    以分配有盘符而视为存在
发表于 2024-8-24 12:44:43 | 显示全部楼层
本帖最后由 ppll2030 于 2024-8-24 12:51 编辑

回复 3# 青青草
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('echo list vol^|diskpart^|find "系统"') do (
  3.     set str=%%i
  4.     if not "!str:~14,1!"==" " (echo 命令1) else (echo 命令2)
  5. )
  6. pause&exit
复制代码
 楼主| 发表于 2024-8-24 13:11:51 | 显示全部楼层
本帖最后由 青青草 于 2024-8-24 13:29 编辑

回复 4# ppll2030
谢谢!
如果卷标为其它(非系统分区),如 IMDISK,应如何处理?
发表于 2024-8-24 13:27:04 | 显示全部楼层
本帖最后由 ppll2030 于 2024-8-24 13:38 编辑

回复 5# 青青草


   
这里的“系统”是ESP分区作为系统引导区后,系统自动给其标注的。
如果你要根据卷标查找,就把find “系统” 改为 find “对应的卷标”即可。
你在cmd下,用echo list vol | diskpart 查看一下即可看到个分区的信息。
 楼主| 发表于 2024-8-24 13:55:33 | 显示全部楼层
回复 6# ppll2030

当卷标不存在时,无法显示:命令2(此时盘符不存在)

只显示:按任意键继续。
 楼主| 发表于 2024-8-24 14:04:55 | 显示全部楼层
回复 6# ppll2030

if not "!str:~14,1!"==" "  (echo 命令1)
当盘符不为空时,显示:命令1
当盘符不存在时,"!str:~14,1!"==" " 是否成立?
谢谢!
发表于 2024-8-24 14:42:35 | 显示全部楼层
发表于 2024-8-24 14:47:01 | 显示全部楼层
回复 8# 青青草


    哎。你的题目改了又该。一开始就问你到底是以盘符是否分配为判断,还是是否存在分区为判断了。

!str:~14,1!是否为空,是以esp分区存在为前提的,有盘符就非空,无盘符即为空。

现在你改为卷标"IMDISK"的分区是否存在而判断,就不能用上面的判断了,要改为:
  1. echo list vol|diskpart|find "IMDISK">nul &&echo 命令1 || echo 命令2
复制代码
 楼主| 发表于 2024-8-24 21:39:34 | 显示全部楼层
回复 9# 77七

谢谢!
 楼主| 发表于 2024-8-24 21:40:10 | 显示全部楼层
回复 10# ppll2030


    谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 19:45 , Processed in 0.021103 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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