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

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

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

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

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

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

初学者,看不懂,学习了

TOP

本帖最后由 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下测试通过!

TOP

本帖最后由 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下测试通过。

TOP

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

TOP

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

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

原帖由 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

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

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

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

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

评分人数

TOP

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

TOP

  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 编辑 ]

TOP

  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盤盤符的批處理改的

TOP

  1. @echo off
  2. wmic logicaldisk where drivetype="5" get caption
复制代码
嘿嘿   刚在论坛里找到的
1

评分人数

TOP

返回列表