返回列表 发帖

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

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

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

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

评分:代码可读性 1 分;
   首个新方法 5 分,第二个 4 分,依次类推,最少 2 分;
   一人可多种方法,新方法追加 2 分,已经出现过的方法追加 1 分。
批处理之家论坛官方 QQ 群 :【当前人数/人数上限】【2009-07-08】
群①:43011867(181/200);群②:(暂缺数据);群③:66165582(120/200)。

@echo off
wmic logicaldisk where drivetype="5" get captionCOPY
嘿嘿   刚在论坛里找到的
1

评分人数

TOP

@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:^|find/i "CD-ROM"') do (
set a=%%j
set a=!a:~0,2!
set b=!b!!a!
))
echo !b!
pause >nulCOPY


拿人家顯示所有U盤盤符的批處理改的

TOP

@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:)COPY

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

[ 本帖最后由 dominater 于 2009-10-14 18:39 编辑 ]

TOP

用到了drivex
@echo off
for /f "delims=:" %%i in ('drivex -v^|findstr "ROM"') do echo %%i:
pauseCOPY

TOP

wmic cdrom get Drive&pauseCOPY
1

评分人数

TOP

原帖由 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 ...
同意这个  就是慢

TOP

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

@echo off
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
echo 磁盘盘符有:
for %%i in (%drive%) do (
if exist %%i:\ echo %%i:\
)
pause >nulCOPY

TOP

原帖由 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: 就代表存在盘符呢?
这个是从哪里取的变量?

TOP

@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了解太少,各位请多指教!!

TOP

这个要用到for 语句吧,应该不难!

TOP

wmic logicaldisk Where DriveType=5 Get DeviceIdCOPY

TOP

本帖最后由 changedirectory 于 2014-6-6 14:09 编辑
@echo off
for /f "delims=" %%i in ('fsutil fsinfo drives') do (
   for %%j in (%%i) do (
      if "%%j" neq "Drives:" (
         for /f "delims=" %%k in ('fsutil fsinfo drivetype %%j^|findstr "CD-ROM"') do (
            echo 光驱为:%%j
         )
      )
   )
)
pauseCOPY
windows 7下测试通过。

TOP

本帖最后由 shelluserwlb 于 2014-11-9 16:03 编辑
@echo off
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
set f=0
echo 正在查询本电脑上的光驱盘符,请稍候...
for %%i in (%hd%) do (
    fsutil fsinfo drivetype %%i:|findstr "驱动器">nul && (
    fsutil fsinfo drivetype %%i:|findstr "CD-ROM">nul && (
    echo 光驱盘符:%%i: & set f=1)
))
if "%f%" == "0" echo 本电脑上没有装光驱!
echo 查询完毕! & pause>nul
set f=COPY
win7下测试通过!

TOP

初学者,看不懂,学习了

TOP

返回列表