标题: 批处理获得所有的磁盘 [打印本页]
作者: novaa 时间: 2008-1-12 11:39 标题: 批处理获得所有的磁盘
最好用两种方法作答。
一种也可以
作者: xxx3212 时间: 2008-1-12 13:17
300批处理里面有个实例
作者: novaa 时间: 2008-1-12 18:00
不是实例的问题。而是给新手练习。
作者: awuxixi 时间: 2008-1-29 20:45
磁盘指的是硬盘分区还是cdrom\hd???
作者: novaa 时间: 2008-1-30 20:24
自然是指C盘。D盘之类得了。
作者: 随风 时间: 2008-3-24 15:46 标题: 回复 6楼 的帖子
不错啊!
wmic 感觉很难掌握的、、
用 wmic
用 fsutil
用 for 穷举
呵呵,最少有三种方法了。。
[ 本帖最后由 随风 于 2008-3-24 15:52 编辑 ]
作者: angelbbaa 时间: 2008-3-25 20:34
fsutil fsinfo drives
作者: chenyulzhh 时间: 2008-3-25 23:51
呵呵
受教了..
还得好好学习啊..
作者: hlam 时间: 2008-11-22 13:54
谢谢。。
从0开始。。
作者: stalker 时间: 2008-11-22 18:40
来个最丑的吧- @echo off
- set entire=C D E F G H I J K L M N O P Q R S T U V W X Y Z
- for %%i in (%entire%) do if exist %%i: echo %%i:
- pause>nul
- exit
复制代码
作者: myzwd 时间: 2009-3-2 18:52 标题: 回复 1楼 的帖子
@echo off
set tt=C D E F G H I J K L M N O P Q R S T U V W X Y Z
for %%1 in (%tt%) do (
for /f "tokens=1 eol=卷" %%j in ('vol %%1:') do (
echo %%j%%1:
)
)
:end
echo bye
作者: Batcher 时间: 2009-3-2 23:35 标题: 回复 12楼 的帖子
不能兼容英文版的操作系统吧?
作者: pzspdl 时间: 2009-3-4 22:21
原帖由 kclmx 于 2008-3-24 12:18 发表
获得硬盘盘符wmic logicaldisk where drivetype="3" get caption获得光驱盘符wmic logicaldisk where drivetype="5" get caption
太不好意思了,我不懂
作者: keen 时间: 2009-3-9 15:38
wmic- @echo off
- wmic logicaldisk get caption,description,drivetype,filesystem,freespace,size
- pause
复制代码
作者: wangjmh 时间: 2009-3-18 23:39
@echo off
set str=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:
pause
作者: stuqx 时间: 2009-3-20 20:47
- set "p=c d e f g h i j k l m n o p q r s t u v w x y z"
- for %%a in (%p%) do (
- if exist %%a^: (echo 存在%%a盘)
- )
- pause
复制代码
[ 本帖最后由 stuqx 于 2009-3-20 20:49 编辑 ]
作者: sjzong 时间: 2009-5-8 21:48
应该认真学习了!!!
作者: Taurus 时间: 2009-5-14 10:45
想到的楼上都答了,原本想答wmic...
相同的思方再答就不好了;
那就绕圈子,从regedit析辨
那样用for可不可算是第四种方法呢... ...?
@echo off
@for /f "tokens=3 delims=\:" %%i in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\" ^| findstr /r "DosDevices"') do (
echo %%i:
)
pause
[ 本帖最后由 Taurus 于 2009-5-14 10:57 编辑 ]
作者: dtyunong 时间: 2009-5-17 11:16 标题: 嘿嘿! 借别人的!
@echo off
setlocal enabledelayedexpansion
for /f "skip=1 tokens=1 delims=\" %%a in ('fsutil fsinfo drives^|find /v ""') do (
set aa=%%a
set aa=!aa:~-2!
for %%i in (!aa!) do fsutil fsinfo drivetype %%i
)
pause
作者: keen 时间: 2009-5-18 20:28 标题: 回复 19楼 的帖子
你的方法,能得到多余的盘符,例如,我在机子上用过U盘,盘符为H,我把U盘拔掉。
你的方法仍然可以检测到U盘的盘符H的存在。
作者: Taurus 时间: 2009-5-20 20:30
再来一个未有的
用 diskpart 命令
@echo off
for /f "skip=9 tokens=3" %%i in ('echo list volume ^| diskpart ') do echo %%i:
pause>nul
[ 本帖最后由 Taurus 于 2009-5-20 20:47 编辑 ]
作者: 唯尘 时间: 2024-1-2 16:43
@echo off
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 if exist %%i: echo %%i:
pause
作者: 青青草 时间: 2024-10-19 21:37
回复 21# Taurus
请教一下大神:
如何将盘符赋值给变量str?(如str=c d e f g)
作者: 77七 时间: 2024-10-19 22:35
回复 23# 青青草
- @echo off
- for /f "skip=9 tokens=3" %%i in ('echo list volume ^| diskpart ') do (
- call set str=%%i %%str%%
- )
- pause>nul
复制代码
作者: aloha20200628 时间: 2024-10-19 23:02
本帖最后由 aloha20200628 于 2024-10-19 23:12 编辑
回复 23# 青青草
方法一》计入光驱- @echo off
- for /f "tokens=1* delims=: " %%1 in (' fsutil.exe fsinfo drives^|find ":" ') do set "dl=%%2"
- set "dl=%dl::\=%"
- echo,%dl%
- pause&exit/b
复制代码
方法二》不计入光驱- @echo off &setlocal enabledelayedexpansion &set "dl="
- for %%d 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 if exist %%d: set "dl=!dl!%%d "
- echo,!dl!
- endlocal&pause&exit/b
复制代码
作者: 青青草 时间: 2024-10-19 23:59
回复 24# 77七
谢谢!
再次请教:
隐藏分区出现的是卷标,不是盘符。如何去掉它?(只显示可见分区盘符)
如,我的系统共有5个分区,C D E F 还有隐藏的ESP分区。结果批处理中 str=F E ESP C D
我需要的是str=F E C D
应如何处理?谢谢!
作者: 青青草 时间: 2024-10-20 00:00
回复 25# aloha20200628
谢谢!
作者: 青青草 时间: 2024-10-20 00:48
回复 24# 77七
另外,虚拟磁盘盘符似乎不能显示出来。
作者: 77七 时间: 2024-10-20 00:58
回复 28# 青青草
- @echo off
- for /f "delims=:" %%i in ('wmic logicaldisk get name ^| find ":"') do (
- call set str=%%i %%str%%
- )
- echo %str%
- pause
复制代码
试试这个
作者: 青青草 时间: 2024-10-20 01:04
本帖最后由 青青草 于 2024-10-20 01:05 编辑
回复 29# 77七
谢谢!
Windows 11 24H2 已经没有了wmic。无法运行。
个人还是比较喜欢用diskpart
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |