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

[系统相关] 批处理怎样判断磁盘卷标为hddown的磁盘是否为F盘?

如何用批处理判断磁盘卷标为hddown的磁盘当前分区为F,如果是执行一个命今,不是就执行下一个命今的批处理

具体一点行吗?我对这个不是很懂

TOP

管理员真的是高手,不过这个代码是看似没有什么问题

[ 本帖最后由 scyz2008 于 2010-9-25 00:03 编辑 ]

TOP

刚试了代码,行不通,不管卷标那个盘是否为E盘他都执行存在都echo no
这行代码

TOP

是F盘,不管卷标为hddown的分区是否为F盘,都只输出结果no

TOP

不错,是个难度,我的思路是双重判断,首先检测系统为中文xp系统,然后查找所有磁盘,里的一个特殊文件,比如说“bathome.sys”这个文件存在那个盘,如果有卷标为hddown那就把,那就不执行什么,如果不是就改卷标为hddown并自动更改此盘为F盘,这样就思路清楚的多了

TOP

也是,不过没有完整的代码

TOP

没有想到这个论坛这样多的热心人,太感谢了,
管理员你这个代码我试了,好像不行,不知道是不是调试的问题吧

TOP

已贴图出来,我现在有一个思路
一,首先对操作系统判断,必须为XP中文版,否则就退出程序
二,如果为中文版的就执行检查硬盘是否存在hddown这个卷标的分区,不存在就执行查找硬盘内"bathome.sys"这个文件,找到这个文件的分区,并自动给他加上hddown这个卷标,并强制把这个盘改为F盘,当然以前的F盘要先改成其它的盘符
三,如果分区中存在hddown这个分区,不为F盘,那么就自动更改为F盘

TOP

看来沉入大海了,难道没有人解决了吗

TOP

去掉后的代码
  1. for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DeviceID='F:'" get VolumeName /value')
  2. do (
  3.     set "strVolume=%%a"
  4. )
  5. if "%strVolume%" == "hddown" (
  6.     echo yes
  7. pause>nul
  8. ) else (
  9.     echo no
  10. pause>nul
  11. )
复制代码
执行后的图片截图

TOP

  1. for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DeviceID='F:'" get VolumeName /value') do (
  2.     set "strVolume=%%a"
  3. )
  4. if /i "%strVolume%" == "hddown" (
  5.     echo yes
  6. pause>nul
  7. ) else (
  8.     echo no
  9. pause>nul
  10. )
复制代码
这样OK了

TOP

如果磁盘中没有卷标为hddown的磁盘,那会执行下一步no这行代码?我的想法是首先检测磁盘中是否有hddown这个卷标的磁盘,并且这个卷标的磁盘内拥有"bathome.sys"这个文件,如果没有这个卷标的磁盘,那么就查找"bathome.sys"这个文件在那个分区,并自动设卷标为hddown,然后执行
  1. for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DeviceID='F:'" get VolumeName /value') do (
  2.     set "strVolume=%%a"
  3. )
  4. if /i "%strVolume%" == "hddown" (
  5.     echo yes
  6. pause>nul
  7. ) else (
  8.     echo no
  9. pause>nul
  10. )
复制代码
这个代码

TOP

在这台机 不好试,等一下试一下

TOP

试了,没有什么反映,再说也不知道29楼想表达的什么意思的代码

TOP

返回列表