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 /?
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.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:\
Lister tous les VolumeName GUID et les lettres assignées
j'aimerais récupérer le VolumeName GUID (en gras dans la sortie de la commande mountvol /?) non monté.
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
EDIT: 12 nov 2010 publié mon code actuel
Partager