Retrouver le chemin de répertoire en batch
Résoluje souhaite stocker le chemin complet d'un dossier dans une variable.
J'y arrive pour stocker le chemin d'un fichier avec ce script:
for /f "delims=" %%a in ('dir mon_fichier.txt /b/s') do set "path=%%~dpnxa"
echo Le chemin est : %path%
Il me faudrait la même chose mais cette fois-ci pour un répertoire, est-ce possible s'il vous plait ?
3 réponses
Stocker le chemin complet d'un dossier dans une variable Windows requiert une approche similaire à celle utilisée pour les fichiers, en utilisant for /f et dir /b /s pour capturer le chemin. Plusieurs solutions sont discutées, notamment l’usage de findstr pour filtrer les résultats, l’emploi de for /f avec des expressions régulières et la gestion des escapes dans les variables. Certaines réponses proposent d’adapter le script pour les répertoires plutôt que les fichiers, notamment en utilisant des motifs correspondant à des répertoires et en évitant d’écraser les variables d’environnement. En pratique, des échanges soulignent l’importance de la gestion des noms de variables et des chemins retournés, ainsi que des précautions liées à l’échappement des caractères et à portabilité entre environnements.
-
Contributeurhello
essayerfor /f "delims=" %%a in ('dir . /b/s ^| findstr /R "\\mon_repertoire$" ') do set "path=%%~dpnxa"
echo Le chemin est : %path%-
Merci pour votre réponse cela fonctionne, cependant, j'aimerais savoir une dernière chose svp:
j'ai une commande ou je copie colle un fichier d'un dossier à l'autre, cependant, ce dernier est volumineux,
J'aimerais savoir sil était possible d'afficher une progress bar qui ping le process ou autre méthode qui permettent d'afficher l'état de progression d'une commande svp ? -
Bonjour,
Votre script ne pointe pas là ou je souhaite obtenir le path malheureusement, tenez:
Le chemin est : C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\iCLS\;C:\Program Files\Intel\Intel(R) Management Engine Components\iCLS\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Windows\System32\OpenSSH\;C:\Users\Admin\AppData\Local\Microsoft\WindowsApps;
Tandis que moi, je souhaite pointer sur un répertoire contenu dans mes documents
Merci par avance -
-
-
-
-
Contributeurdans "\\mon_repertoire$" tu as remplacé mon_repertoire par le nom de ton répertoire ?
-
-
Finalement j'obtiens ceci cependant, je ne souhaite pas observer le contenu interne au dossier mais juste obtenir le path de "répertoire"
C:\Users\Admin\Documents>echo Le chemin est : C:\Users\Admin\Documents\repertoire\destination\2.BAT
Le chemin est : C:\Users\Admin\Documents\repertoire\destination\2.BAT
Or m'oi j'aimerais obtenir ceci svp:
Le chemin est : C:\Users\Admin\Documents\repertoire
Merci par avance -
-
-
Je sais pas ce qui c'est passé mais la commande refonctionne:
C:\Users\Admin\Documents>dir . /b/s | findstr /R "\\repertoire"
C:\Users\Admin\Documents\repertoire
C:\Users\Admin\Documents\repertoire.bat
C:\Users\Admin\Documents\repertoire\destination
C:\Users\Admin\Documents\repertoire\setup.exe
C:\Users\Admin\Documents\repertoire\destination\2.BAT
Du coup, j'aimerais bien obtenir ceci si possible svp uniquement :
C:\Users\Admin\Documents\repertoire
-
-
Bonjour,
%PATH% est une variable d'environnement, tu devrais changer le nom de ta variable pour t'éviter des problèmes.
-
-
@jojol_8144Ce pourcent ne devrait pas être là, c'est toi qui l'a rajouté.
Un indice : quand on travaille directement dans la console on ne double pas les pourcents, regarde bien et tu trouveras ton erreur. -
-