2009-04-25 5 views
0

Je dois obtenir la lettre de lecteur du lecteur de stylet USB. La commande CHDIR> drive.txt me donne la lettre de lecteur L: .Comment puis-je lire/obtenir cette info "L:" sans guillemets dans une variable dans mon fichier de commandesTrouver Lettre de lecteur USB

Répondre

1

Les sorties chdir peuvent également être utilisées par la pseudo-variable %CD%. Donc, vous avez déjà une variable avec cette information.

Sinon, vous pouvez utiliser for:

for /f "delims=" %%x in ('chdir') do set "drive=%%x" 

Mais je pense que %CD% est beaucoup plus facile :-)

EDIT: Vous avez dit que les citations déjà. Vous n'aurez pas de guillemets dans la variable à moins que vous ne les vouliez.

Quant à la barre oblique inverse: Vous pouvez utiliser les éléments suivants au lieu de %CD%:

%CD:~0,-1% 

qui étendra %CD% et de supprimer le dernier caractère, que vous connaissez est la barre oblique inverse. Cependant, cela ne fonctionnera que si vous êtes dans le répertoire racine de ce lecteur. Sinon, vous pouvez également utiliser

for %%x in (%cd%) do @set drive=%%~dx 
+0

% CD % est ok similaire à chdir mais j'ai besoin de supprimer la barre oblique inverse "\" la variable ne doit être "L:" sans guillemets –

0

Depuis cd va afficher quelque chose comme:

c:\documents and settings\pax 

vous devez simplement saisir le premier champ en utilisant "\" comme séparateur comme suit:

for /f "delims=\" %d in ('cd') do set curdrv=%d 

Cette définira la variable d'environnement curdrv à c: pour la sortie susmentionnée. N'oubliez pas d'utiliser la variante double% (%% d) si vous exécutez dans un fichier cmd.

1

L'utilisation, dans votre lot, quelque chose comme:

set Drive=%cd:~0,2% 

Would YELD une teneur en L: que vous avez demandé, si tel est le répertoire courant le script est, au moment où vous utilisez il. Si vous avez du popd/pushd, du cd, etc. dans le lot, faites attention quand vous l'utilisez. Le reste dépend de vous

Si vous pouviez l'utiliser (une partie de votre lot peut-être) vous aiderait à obtenir une meilleure réponse. Nous pouvons seulement deviner. La raison, je pense, pour le couple de pour boucles dans les réponses. Peut-être pas nécessaire mais nous devinons.

2

Voici comment obtenir une lettre de lecteur USB à partir de n'importe quel lecteur.

@echo off 

for /F "usebackq tokens=1,2,3,4 " %%i in (`wmic logicaldisk get caption^,description^,drivetype 

2^>NUL`) do (

if %%l equ 2 (
echo %%i is a USB drive. 
) 
) 
+0

c'est utile; mais que se passe-t-il s'il y a un (multi) lecteur de carte il les mentionnera aussi. –

1
for %%a in (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>nul |find "NAME OF THE USB" >nul && 
set drv=%%a: 
%drv% 

Ce i ce que j'utilise pour trouver la lettre sur mon USB

  • il suffit de changer le "NOM DU USB" au nom de l'USB
Questions connexes