Récupération d'une Donnée (Lettre du lecteur amovible)
Résolu
Glyphe
-
brucine Messages postés 21615 Date d'inscription Statut Membre Dernière intervention -
brucine Messages postés 21615 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Récupération d'une Donnée (Lettre du lecteur amovible)
- Clavier iphone chiffre et lettre - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Lecteur windows media - Télécharger - Lecture
- Caractere speciaux lettre - Guide
- Lecteur pptx - Télécharger - Présentation
3 réponses
Bonjour,
Essaie en écrivant ta boucle FOR comme ceci :
Essaie en écrivant ta boucle FOR comme ceci :
FOR /F "delims= " %%G IN ('wmic logicaldisk where drivetype^=2 get deviceid^,volumename ^| find "UDISK"') DO echo.%%G
Merci beaucoup,
j'ai aussi trouvé une solution plus simple .
%CD:~0,2% pour afficher directement la lettre de la ou et lancer le .bat
merci encore.
j'ai aussi trouvé une solution plus simple .
rundll32 printui.dll, PrintUIEntry /if /f "%CD:~0,1%:\ADDPRINTER\EUPD_Core_x64_27005\E_JFB0DE.INF" /w /r "%ip%" /m "EPSON Universal Print Driver"
%CD:~0,2% pour afficher directement la lettre de la ou et lancer le .bat
merci encore.
Bonjour,
Il faut prendre garde aux faux amis:
%~dp0 et %CD:~0,1% me retournent respectivement le chemin et la lettre de lecteur de la clé d'où le batch est lancé (et donc a fortiori ne s'appliquent pas si le batch est lancé depuis le PC), tandis que nombre de clés n'ont pas de valeur volumename faute qu'un LABEL ait été attribué.
Dans ce dernier cas de figure, il existe au moins 2 façons de retourner la lettre d'une clé USB selon des critères spécifiques.
La plus simple consiste à tester sur cette clé l'existence d'un fichier spécifique et improbable, supposons que j'y ai créé un fichier ascii.txt vide, il me suffit alors d'écrire:
Si je tiens à utiliser wmic, il est alors plus sain d'utiliser une autre propriété spécifique à cette clé, le numéro de série, qui est persistant sur un PC déterminé tant que la clé n'est pas formatée, et que j'obtiens par VOL; par exemple, VOL N: me retourne:
Comme prévu, le volumename échoue, je dois utiliser le numéro de série sans tiret: 8072A806, et je peux retourner la lettre de lecteur suivie de :\ comme suit:
Il faut prendre garde aux faux amis:
%~dp0 et %CD:~0,1% me retournent respectivement le chemin et la lettre de lecteur de la clé d'où le batch est lancé (et donc a fortiori ne s'appliquent pas si le batch est lancé depuis le PC), tandis que nombre de clés n'ont pas de valeur volumename faute qu'un LABEL ait été attribué.
Dans ce dernier cas de figure, il existe au moins 2 façons de retourner la lettre d'une clé USB selon des critères spécifiques.
La plus simple consiste à tester sur cette clé l'existence d'un fichier spécifique et improbable, supposons que j'y ai créé un fichier ascii.txt vide, il me suffit alors d'écrire:
@echo off
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 IF EXIST %%A:\ascii.txt SET LECT=%%A:\
Si je tiens à utiliser wmic, il est alors plus sain d'utiliser une autre propriété spécifique à cette clé, le numéro de série, qui est persistant sur un PC déterminé tant que la clé n'est pas formatée, et que j'obtiens par VOL; par exemple, VOL N: me retourne:
Le volume dans le lecteur N n’a pas de nom.
Le numéro de série du volume est 8072-A806
Comme prévu, le volumename échoue, je dois utiliser le numéro de série sans tiret: 8072A806, et je peux retourner la lettre de lecteur suivie de :\ comme suit:
@echo off
SET numserie=8072A806
SET chem=\:
FOR /F "skip=1 tokens=1,2 delims=: " %%G in ('wmic logicaldisk where drivetype^=2 get name^,volumeserialnumber^') DO SET "letter=%%G" & SET "serie=%%H" & CALL :PROCESS
GOTO :EOF
:PROCESS
IF %serie%==%numserie% SET "lecteur=%letter%%lecteur%%chem%"
IF %serie%==%numserie% echo %lecteur%
pause >nul
:EOF