Je cherche à écrire un script qui me permettrait de récupérer le GUID d'un volume sans point de montage dans une variable. Manipulation des sorties de la commande mountvol avec une boucle for /f

Monter un volume sur un dossier NTFS

mountvol /?
Creates, deletes, or lists a volume mount point.

MOUNTVOL [drive:]path VolumeName
MOUNTVOL [drive:]path /D
MOUNTVOL [drive:]path /L

path Specifies the existing NTFS directory where the mount
point will reside.
VolumeName Specifies the volume name that is the target of the mount
point.
/D Removes the volume mount point from the specified directory.
/L Lists the mounted volume name for the specified directory.

Possible values for VolumeName along with current mount points are:

\\?\Volume{e0de0f47-6038-47bc-bceb-594a462b56e7}\
C:\

\\?\Volume{3c439cc2-39c8-11de-8518-806d6172696f}\
D:\

\\?\Volume{bbf71292-a819-11da-9fcb-806d6172696f}\
*** NO MOUNT POINTS ***

\\?\Volume{8b9b403c-ed79-11df-8524-0011f5b854d7}\
E:\

\\?\Volume{8b9b403d-ed79-11df-8524-0011f5b854d7}\
T:\

\\?\Volume{8b9b403e-ed79-11df-8524-0011f5b854d7}\
R:\

\\?\Volume{8b9b4043-ed79-11df-8524-0011f5b854d7}\
F:\
La difficulté réside à analyser la sortie de la commande avec une boucle for /f puisque le séparateur n'est pas un espace ou une virgule mais les 2 infos à traiter sont chacune sur une ligne.

Lister tous les VolumeName GUID et les lettres assignées
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Echo off&Setlocal enableextensions
:__DL
For /f %%# In ('Mountvol ^|Findstr [c-z]:\\') Do (
	(Set "DL=%%~#")&&call :__GUID
	)
goto :eof

:__GUID
For /f %%# In ('Mountvol %DL% /L') Do (
	(Set "GUID=%%~#")&&call :__OUT
	)
goto :eof

:__OUT
echo/%GUID% ^<^=^> %DL%
goto :eof
j'aimerais récupérer le VolumeName GUID (en gras dans la sortie de la commande mountvol /?) non monté.

EDIT: 12 nov 2010 publié mon code actuel