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

[ 新手练习题 2 ] 批处理显示光驱盘符

[复制链接]
发表于 2009-5-26 13:50:49 | 显示全部楼层 |阅读模式
[ 新手练习题 2 ] 显示光驱盘符
判断光驱盘符有哪些,可以利用 VBS、JS 等脚本或注册表来得到,但最后要在批处理中显示出来。

目的:了解能够显示光驱盘符的命令或方法都有哪些。

要求:显示出光驱盘符,如有多个光驱要一并显示出来。
   方法不限。

评分:代码可读性 1 分;
   首个新方法 5 分,第二个 4 分,依次类推,最少 2 分;
   一人可多种方法,新方法追加 2 分,已经出现过的方法追加 1 分。
发表于 2009-6-3 10:36:04 | 显示全部楼层
  1. @echo off
  2. wmic logicaldisk where drivetype="5" get caption
复制代码
嘿嘿   刚在论坛里找到的

评分

参与人数 1PB +6 收起 理由
wxcute + 6 很快嘛。

查看全部评分

发表于 2009-6-4 23:43:48 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo 該電腦的CD-ROM盤符有:
  4. for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  5. for /f "delims=" %%j in ('fsutil fsinfo drivetype %%i:^|find/i "CD-ROM"') do (
  6. set a=%%j
  7. set a=!a:~0,2!
  8. set b=!b!!a!
  9. ))
  10. echo !b!
  11. pause >nul
复制代码


拿人家顯示所有U盤盤符的批處理改的
发表于 2009-10-14 18:37:19 | 显示全部楼层
  1. @echo off
  2. set str=a b c d e f g h i j k l m n o p q r s t u v w x y z
  3. echo 当前存在的盘符:
  4. for %%i in (%str%) do (
  5. if exist %%i:
  6. echo %%i:)
复制代码

这是JM大大FOR教程里的压箱底之作~

[ 本帖最后由 dominater 于 2009-10-14 18:39 编辑 ]
发表于 2009-10-14 19:13:59 | 显示全部楼层
用到了drivex
  1. @echo off
  2. for /f "delims=:" %%i in ('drivex -v^|findstr "ROM"') do echo %%i:
  3. pause
复制代码
发表于 2010-1-11 18:49:04 | 显示全部楼层
  1. wmic cdrom get Drive&pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Hello123World + 1 乐于助人

查看全部评分

发表于 2010-1-12 11:30:12 | 显示全部楼层
原帖由 flyzr 于 2009-6-4 23:43 发表
@echo off
setlocal enabledelayedexpansion
echo 該電腦的CD-ROM盤符有:
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
for /f "delims=" %%j in ('fsutil fsinfo drivetype %%i:^|fi ...
同意这个  就是慢
发表于 2010-1-18 19:09:50 | 显示全部楼层

新手额,只会这样写了~~~

  1. @echo off
  2. set drive=c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
  3. echo 磁盘盘符有:
  4. for %%i in (%drive%) do (
  5. if exist %%i:\ echo %%i:\
  6. )
  7. pause >nul
复制代码
发表于 2010-4-9 10:08:40 | 显示全部楼层
原帖由 dominater 于 2009-10-14 18:37 发表
@echo off
set str=a b c d e f g h i j k l m n o p q r s t u v w x y z
echo 当前存在的盘符:
for %%i in (%str%) do (
if exist %%i:
echo %%i
这是JM大大FOR教程里的压箱底之作~

为什么只要exist %%i: 就代表存在盘符呢?
这个是从哪里取的变量?
发表于 2010-4-11 15:54:01 | 显示全部楼层
@echo off
@echo. >>tmp.txt
call disk.vbs
for /f  "tokens=*" %%i (tmp.txt) do echo %%i
del tmp.txt
pause
-----------------------------------------disk.vbs-------------------
dim fso,dc,tf
set fso=createobject("scripting.filesystemobject")
set dc=fso.drives
for each d in dc
if d.drivetype="4" then
n=n & d.driveletter & ":" & "CD-ROM" & vbcrlf
end if
next
set tf=fso.createtextfile("tmp.txt",true)
tf.write n
tf.close
vbs了解太少,各位请多指教!!
发表于 2010-4-25 14:12:32 | 显示全部楼层
这个要用到for 语句吧,应该不难!
发表于 2011-8-3 15:33:22 | 显示全部楼层
  1. wmic logicaldisk Where DriveType=5 Get DeviceId
复制代码
发表于 2014-6-6 14:01:30 | 显示全部楼层
本帖最后由 changedirectory 于 2014-6-6 14:09 编辑

  1. @echo off
  2. for /f "delims=" %%i in ('fsutil fsinfo drives') do (
  3.    for %%j in (%%i) do (
  4.       if "%%j" neq "Drives:" (
  5.          for /f "delims=" %%k in ('fsutil fsinfo drivetype %%j^|findstr "CD-ROM"') do (
  6.             echo 光驱为:%%j
  7.          )
  8.       )
  9.    )
  10. )
  11. pause
复制代码
windows 7下测试通过。
发表于 2014-11-8 14:19:50 | 显示全部楼层
本帖最后由 shelluserwlb 于 2014-11-9 16:03 编辑
  1. @echo off
  2. set hd=c d e f g h i j k l m n o p q r s t u v w x y z
  3. set f=0
  4. echo 正在查询本电脑上的光驱盘符,请稍候...
  5. for %%i in (%hd%) do (
  6.     fsutil fsinfo drivetype %%i:|findstr "驱动器">nul && (
  7.     fsutil fsinfo drivetype %%i:|findstr "CD-ROM">nul && (
  8.     echo 光驱盘符:%%i: & set f=1)
  9. ))
  10. if "%f%" == "0" echo 本电脑上没有装光驱!
  11. echo 查询完毕! & pause>nul
  12. set f=
复制代码
win7下测试通过!
发表于 2014-11-12 15:23:09 | 显示全部楼层
初学者,看不懂,学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-16 23:48 , Processed in 0.023856 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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