Windows Batch Script obtenir le nom du lecteur courant

j'ai un fichier de commandes qui est sur une clé usb. J'ai besoin de savoir le nom du disque, le lot est dans.

Exemple, si c'est E:mybatch.chauve-souris, il devrait trouver E: même chose pour F: G: etc.. quand il est ouvert.

Comment ai-je pu faire cela dans le script de fournée. (Windows)

18
demandé sur erreka 2011-04-28 03:37:40

6 réponses

%CD% est ce que vous cherchez. Il affiche le répertoire de travail courant du fichier batch ou de la commande qui l'exécute. Si votre fichier batch est sur la racine du lecteur, il va juste Imprimer la lettre de lecteur, sinon vous aurez à analyser les 2 premiers caractères.

Exemple:

echo %CD%

imprime

E:\

sur une clé USB montée sur E:.

mise à jour: comme Andriy l'a dit dans les commentaires, si vous êtes à la recherche des trois premiers les caractères du chemin, puis utilisez ceci à la place de %CD%:

%CD:~0,3%

résultat E:\, par exemple, n'importe où sur le disque.

31
répondu John Leehey 2016-06-10 22:33:19

M$ de la documentation " en utilisant les paramètres batch" dit:

modificateur: %~d0

Description: étend %0 à une lettre de lecteur.

15
répondu Kai K. 2014-03-18 06:45:02

Si la course de l'intérieur .CMD/.BAT file, Vous pouvez utiliser %~dp0 pour obtenir le répertoire courant / actif. Celui-ci est un peu plus sûr car il est conscient des chemins UNC et autres. Référence pour la syntaxe de cette variable est disponible ici.

9
répondu ewall 2011-04-28 01:14:40

Vous pouvez trouver toutes les lettres de lecteur USB de n'importe quel lecteur avec cela.

@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.
        )
        )
1
répondu sparky3489 2013-11-23 03:34:54

Merci beaucoup @Sparky3489, si je n'ai qu'une seule clé USB, je mets cela dans votre algorithme, juste après le

echo %%i is a USB drive.
Set FlashDrive=%%I

j'ai aussi modifié le Libellé de l'Identificateur

Echo %%i is a USB Flash Drive~!

puis, après, {et en dehors} de l'algorithme, je peux ajouter le chemin du lecteur Flash tel que...

Set FlashPath=%FlashDrive%\Users\Public\Documents

puis en mettant en place d'autres chemins

Set SourcePath=C:\Users\Public\Documents

je peux faire une sauvegarde de fichier par lot pour la clé USB, (peut être appelé Via Windows Short-Cut avec une icône associée dans votre fenêtre de Lancement rapide ~ Rechercher "Lancement rapide", si en doute à ce que je parle).

Rem  * * * * * * * * * Start Batch File * * * * * * * * * *
@Echo OFF
cls
Echo FlashDrive UpDater for
Echo.
Echo Excel, Word ...
Echo * * * * * * * * * ~ Excel SpreadSheets ~ * * * * * * * * *
XCopy /D /I /V /Y /U /S "%SourcePath%\Excel Documents\*.*" "%FlashPath%\Excel Documents\"
Echo * * * * * * * * * ~ Word Documents ~ * * * * * * * * *
XCopy /D /I /V /Y /U /S "%SourcePath%\Word Documents\*.*" "%FlashPath%\Word Documents\"
Echo.
Echo.
Echo FlashDrive = %FlashDrive%
Echo FlashPath = %FlashPath%
Echo.
Echo * Bonus Switch Info * * * * *
Echo * XCopy Switch  /D ~ Copies Files Changed On or After the Specified Date.
Echo *          {If no Date is Given, Copies only those Files whose
Echo *          Source Time is Newer than the Destination Time}.
Echo * XCopy Switch  /I ~ Copies More than One File to Destination (Assumes Destination is a Directory)
Echo * XCopy Switch  /S ~ Copies Directories and Subdirectories Except Empty Ones
Echo * XCopy Switch  /V ~ Verifies Each New File.
Echo * XCopy Switch  /U ~ Copies only Files that Already Exist in Destination.
Echo * XCopy Switch  /Y ~ Suppresses Prompting to Confirm You Want to Overwrite an Existing Destination File.
Echo.
Rem for More Info on XCopy Switches GoTo http://support.microsoft.com/kb/128756
Echo Directory Path = %~DP0
Echo.
Echo * Batch File Name = %0 *
Echo.
Rem Echo %CD:~0,2%, {Returns "Drive Letter & Colon"}
Rem Echo %CD:~0,3%, {Returns "Drive Letter & Colon & BackSlash"}
Pause
cls
Pause
Exit
Rem  * * * * * * * * * End Batch File * * * * * * * * * *
0
répondu JollyChollie 2017-11-15 08:15:02
%CD:~0,2%

cela vous donnera le lecteur courant dans le format C: , c'est-à-dire les 2 premiers caractères du répertoire de travail actuel

C:\Users\ashish>ECHO %CD:~0,2%
C:

D:\projects>ECHO %CD:~0,2%
D:

D:\projects>ECHO %CD%
D:\projects
0
répondu Ashish Namdev 2018-09-20 04:59:31