回答:
これで大部分が得られます:
Net Use
substを介してマップされたドライブがある場合は、それらも取得する必要があります。
Subst
完全を期すために、Powershellで次のようにします(Windows 7を使用している場合、またはWindows 7をインストールしている場合)。
gwmi win32_LogicalDisk -filter DriveType=4
コマンドプロンプトまたは次のようなWMIを使用したバッチファイルからも実行できます。
wmic logicaldisk get caption,providername,drivetype,volumename
diskpartを使用するには、中間ファイルを作成する必要はありません。試してください:
echo list volume | diskpart
@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,%%b@"
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
高速、柔軟かつ効率的。少し複雑ですが。
スコットに触発
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
CDドライブ文字も表示されます。管理者である必要はありません。
mountvol
サンプル出力
\\?\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:\
誰かがVista(私の場合はVista Ultimate SP2 b6002)を使用できるほど幸運であり、ここで指定されたgwmiおよびwmicスニペットが正確に機能しない場合、それを機能させるために私がしたことはここにあります。
gwmiあなたは何も出力を受けていない場合は、まだ問題がある場合は3にDRIVETYPEを変更してみてください、完全-filterオプションを削除し、出力を分析します。
gwmi win32_LogicalDisk -filter DriveType=3
WMICあなたが「無効なGET式」を受信した場合、その後、入れてみてくださいGETの引用符で式を:
wmic logicaldisk get "caption,providername,drivetype,volumename"
このサイトには、はるかに簡単な一連の呼び出しがあります。
http://en.code-bude.net/2013/02/23/show-all-drives-in-command-prompt/
ローカルドライブを表示:
wmic logicaldisk get deviceid、volumename、description
特定のタイプのドライブのみを表示する場合は、wmicコマンドをさらに展開して、where句を含めることができます。
wmic logicaldisk where drivetype = 2 get deviceid、volumename、description
タイプ
0 =>不明
1 =>ルートディレクトリなし
2 =>リムーバブルディスク
3 =>ローカルディスク
4 =>ネットワークドライブ
5 =>コンパクトディスク
6 => RAMディスク
@ECHO OFF
IF NOT EXIST A: GOTO B
:A
VOL A:
:B
IF NOT EXIST B: GOTO C
VOL B:
:C
IF NOT EXIST C: GOTO D
VOL C:
:D
IF NOT EXIST D: GOTO E
VOL D:
:E
IF NOT EXIST E: GOTO F
VOL E:
:F
IF NOT EXIST F: GOTO G
VOL F:
:G
IF NOT EXIST G: GOTO H
VOL G:
:H
IF NOT EXIST H: GOTO I
VOL H:
:I
IF NOT EXIST I: GOTO J
VOL I:
:J
IF NOT EXIST J: GOTO K
VOL J:
:K
IF NOT EXIST K: GOTO L
VOL K:
:L
IF NOT EXIST L: GOTO M
VOL L:
:M
IF NOT EXIST M: GOTO N
VOL M:
:N
IF NOT EXIST N: GOTO O
VOL N:
:O
IF NOT EXIST O: GOTO P
VOL O:
:P
IF NOT EXIST P: GOTO Q
VOL P:
:Q
IF NOT EXIST Q: GOTO R
VOL Q:
:R
IF NOT EXIST R: GOTO S
VOL R:
:S
IF NOT EXIST S: GOTO T
VOL S:
:T
IF NOT EXIST T: GOTO U
VOL T:
:U
IF NOT EXIST U: GOTO V
VOL U:
:V
IF NOT EXIST V: GOTO W
VOL V:
:W
IF NOT EXIST w: GOTO X
VOL W:
:X
IF NOT EXIST X: GOTO Y
VOL X:
:Y
IF NOT EXIST Y: GOTO Z
VOL Y:
:Z
IF NOT EXIST Z: GOTO END
VOL Z:
:END