Board logo

标题: [ 新手练习题 2 ] 批处理显示光驱盘符 [打印本页]

作者: wxcute    时间: 2009-5-26 13:50     标题: [ 新手练习题 2 ] 批处理显示光驱盘符

[ 新手练习题 2 ] 显示光驱盘符
判断光驱盘符有哪些,可以利用 VBS、JS 等脚本或注册表来得到,但最后要在批处理中显示出来。

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

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

评分:代码可读性 1 分;
   首个新方法 5 分,第二个 4 分,依次类推,最少 2 分;
   一人可多种方法,新方法追加 2 分,已经出现过的方法追加 1 分。
作者: stuqx    时间: 2009-6-3 10:36

  1. @echo off
  2. wmic logicaldisk where drivetype="5" get caption
复制代码
嘿嘿   刚在论坛里找到的
作者: flyzr    时间: 2009-6-4 23:43

  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盤盤符的批處理改的
作者: dominater    时间: 2009-10-14 18:37

  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 编辑 ]
作者: ashdisp    时间: 2009-10-14 19:13

用到了drivex
  1. @echo off
  2. for /f "delims=:" %%i in ('drivex -v^|findstr "ROM"') do echo %%i:
  3. pause
复制代码

作者: neorobin    时间: 2010-1-11 18:49

  1. wmic cdrom get Drive&pause
复制代码

作者: huziivy    时间: 2010-1-12 11:30

原帖由 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 ...
同意这个  就是慢
作者: Kenmick    时间: 2010-1-18 19:09     标题: 新手额,只会这样写了~~~

  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
复制代码

作者: P_Ricky    时间: 2010-4-9 10:08

原帖由 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: 就代表存在盘符呢?
这个是从哪里取的变量?
作者: honeybat    时间: 2010-4-11 15:54

@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了解太少,各位请多指教!!
作者: 634175535    时间: 2010-4-25 14:12

这个要用到for 语句吧,应该不难!
作者: Hello123World    时间: 2011-8-3 15:33

  1. wmic logicaldisk Where DriveType=5 Get DeviceId
复制代码

作者: changedirectory    时间: 2014-6-6 14:01

本帖最后由 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下测试通过。
作者: shelluserwlb    时间: 2014-11-8 14:19

本帖最后由 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下测试通过!
作者: zqy220422    时间: 2014-11-12 15:23

初学者,看不懂,学习了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2