pengembangan-web-mp.com

Bagaimana cara mendapatkan daftar huruf drive pada sistem melalui Shell windows (bat, cmd)?

Bagaimana cara saya mendapatkan daftar huruf drive dan label terkait pada sistem windows melalui file bat?

26
Chris Magnuson

Ini akan mendapatkan sebagian besar dari itu:

Net Use

Jika Anda memiliki drive yang dipetakan melalui subst, Anda juga perlu mendapatkannya:

Subst

Untuk kelengkapan, Anda akan melakukannya seperti ini di Powershell (jika Anda berada di windows 7 atau telah menginstalnya):

gwmi win32_LogicalDisk -filter DriveType=4

Anda juga dapat melakukannya dari Prompt perintah atau file batch menggunakan WMI seperti ini:

wmic logicaldisk get caption,providername,drivetype,volumename
37
EBGreen

Untuk menggunakan diskpart, tidak perlu membuat file perantara. Mencoba:

echo list volume | diskpart
15
gnoise
@echo off
cls
setlocal enabledelayedexpansion
set "_DRIVE.LETTERS.FREE=Z Y X W V U T S R Q P O N M L K J I H G F E D C B A "
for /f "skip=1 tokens=1,2 delims=: " %%a in ('wmic logicaldisk get deviceid^,volumename') do (
   set "_DRIVE.LETTERS.USED=!_DRIVE.LETTERS.USED!%%a,%%[email protected]"
   set "_DRIVE.LETTERS.FREE=!_DRIVE.LETTERS.FREE:%%a =!"
)
set _DRIVE.LETTERS.USED=%_DRIVE.LETTERS.USED:~0,-2%
set _DRIVE.LETTERS.USED=%_DRIVE.LETTERS.USED:,@=, @%
set _DRIVE.LETTERS

Cepat, fleksibel, dan efisien. Meski sedikit rumit.

10
Dharma Leonardi

terinspirasi oleh Scott

for %i in (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) do @%i: 2>nul && set/pz=%i <nul

juga menunjukkan huruf drive CD. tidak perlu menjadi admin.

7
Yuning
mountvol

output sampel

\\?\Volume{11197e59-f977-11dd-afc6-111e6f6e6963}\
   *** NO MOUNTING POINT ***

\\?\Volume{11197e59-f977-11dd-afc6-111e6f6e6963}\
   D:\

\\?\Volume{11197e59-f977-11dd-afc6-111e6f6e6963}\
   C:\

\\?\Volume{11197e59-f977-11dd-afc6-111e6f6e6963}\
   E:\
5
Jader Dias

Jika ada yang beruntung cukup untuk menggunakan Vista (Vista Ultimate SP2 b6002, dalam kasus saya) dan gwmi dan - wmic cuplikan yang diberikan di sini tidak bekerja dengan tepat, inilah yang saya lakukan untuk membuatnya bekerja.

Untuk gwmi, jika Anda tidak menerima keluaran, coba ubah DriveType ke 3. Jika masih mengalami masalah, hapus opsi -filter sekaligus dan analisis keluaran.

gwmi win32_LogicalDisk -filter DriveType=3

Untuk wmic, jika Anda menerima "Ekspresi GET Tidak Valid", maka coba letakkan ekspresi get dalam tanda kutip:

wmic logicaldisk get "caption,providername,drivetype,volumename"
4
tdowg1
@echo off
echo list volume > scriptdiskpart
diskpart/s scriptdiskpart
del scriptdiskpart
pause
2
5d4gd

Situs ini memiliki serangkaian panggilan yang lebih sederhana:

http://en.code-bude.net/2013/02/23/show-all-drives-in-command-Prompt/

Tampilkan drive lokal:

wmic logicaldisk dapatkan deviceid, volumename, description


Jika Anda hanya ingin menunjukkan drive dari jenis tertentu, perintah wmic dapat diperluas untuk menyertakan klausa di mana.

wmic logicaldisk di mana drivetype = 2 dapatkan deviceid, volumename, description

Jenis

0 => Tidak Dikenal

1 => Tidak Ada Direktori Root

2 => Removable Disk

3 => Disk Lokal

4 => Drive Jaringan

5 => Compact Disc

6 => RAM Disk

2
David Tr
for %%p in (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) do if exist %%p:\nul your_command_and_parameters_here
1
pbies
for %a 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 @vol %a 2>&1 | find "drive"

Saya menemukan pendekatan pendekatan diskpart melaporkan drive DVD tanpa disk dimasukkan, dan tidak melaporkan kartu SD dengan volume drive yang valid

1
Nick

Agak kotor, tetapi bekerja dari file batch:

echo LIST VOLUME > temp.txt && diskpart /s temp.txt && del /q temp.txt
0
Nexus

Meskipun memiliki jawaban yang cukup, saya ingin menambahkannya ketika Anda ingin menggunakannya dalam file batch. Jika Anda mendapatkan "Ekspresi GET Tidak Valid", Anda dapat meletakkan ^ sebelum ',', seperti di bawah ini:

for /F "usebackq tokens=1,2,3,4 " %%i in (`wmic logicaldisk get caption^,providername^,drivetype^,volumename 2^>NUL`) do echo %%i %%l
0
Mingjiang Shi