Retrouver le chemin de répertoire en batch [Résolu]

Signaler
Messages postés
130
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
2 juillet 2020
-
Messages postés
130
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
2 juillet 2020
-
Bonjour,

je 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

Messages postés
18149
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 juillet 2020
4 887
hello
essayer
for /f "delims=" %%a in ('dir . /b/s ^| findstr /R "\\mon_repertoire$" ')  do set "path=%%~dpnxa"
echo Le chemin est : %path%
Messages postés
130
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
2 juillet 2020
3
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
Messages postés
18149
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 juillet 2020
4 887
j'ai une commande ou je copie colle un fichier d'un dossier à l'autre, cependant, ce dernier est volumineux,
une commande DOS ? genre copy ou xcopy ?

je n'ai pas compris la question du post 3
Messages postés
130
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
2 juillet 2020
3
Bjr,

Pour une commande xcopy svp ?
Messages postés
18149
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 juillet 2020
4 887
Messages postés
130
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
2 juillet 2020
3
Merci pour ce retour cependant, j'ai toujours le même souci avec ce script:


for /f "delims=" %%a in ('dir . /b/s ^| findstr /R "\\mon_repertoire$" ') do set "path=%%~dpnxa"
echo Le chemin est : %path%


En effet, quand je souhaite obtenir le path du répertoire ciblé, cela ne fonctionne pas malheureusement , j'obtiens toujours ceci:


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;
Messages postés
18149
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 juillet 2020
4 887
dans "\\mon_repertoire$" tu as remplacé mon_repertoire par le nom de ton répertoire ?
Messages postés
18149
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 juillet 2020
4 887
les caractères spéciaux doivent être protégés en .bat et dans for
je veux juste le nom vu par DOS : aller dans le répertoire, taper dir
Messages postés
130
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
2 juillet 2020
3
Je reviens car j'ai effectué des tests supplémentaires et en enlevant un % à %%a, j'obtiens ceci:


C:\Users\Admin>for /f "delims=" %a in ('dir . /b/s ^| findstr /R "http%3a%2f%2fcygwin.mirror.constant.com%2f$" ') do set "path=%%~dpnxa"

C:\Users\Admin>set "path=%C:\Users\Admin\Documents\http%3a%2f%2fcygwin.mirror.constant.com%2f"


cependant, j'aimerais enlever le % devant le C:/ car je souhaite récupérer ce path pour le réutiliser ailleurs....

Est-il possible, soit d'enlever ce % via une commande plus optimisé que mon bricolage, ou alors de récupérer mon ceci dans la variable %path% et modifier la chaine ce caractère dans la variable pour que le ne garde que
C:\Users\Admin\Documents\http%3a%2f%2fcygwin.mirror.constant.com%2f"
svp ?

EDIT:

j'ai tapé comme vous me l'aviez demandé la commande dir et vous ais mis le résultat dans mon post précédent le résultat:

je vous le repost:

16/07/2019 13:18 <DIR> http%3a%2f%2fcygwin.mirror.constant.com%2f
Messages postés
18149
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 juillet 2020
4 887
protéger les % avec %%
......('dir . /b/s ^| findstr /R "\\http%%3a%%2f%%2fcygwin.mirror.constant.com$" ') ....
Messages postés
130
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
2 juillet 2020
3
merci mais malheureusement j'obtiens ceci:


for /F "delims=" %a in ('dir . /b/s | findstr /R "http%3a%2f%2fcygwin.mirror.constant.com$" ') do set "path=%~dpnxa"

C:\Users\Admin\Documents>echo 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;
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;


Le nom du répertoire est bon mais je tombe sur ceci.

J'aurais une autre question en plus svp:

comment puis-je retirer le premier caractère de ceci stocké dans la variable (à savoir le %) svp ?:



C:\Users\Admin>for /f "delims=" %a in ('dir . /b/s ^| findstr /R "http%3a%2f%2fcygwin.mirror.constant.com%2f$" ') do set "path=%%~dpnxa"

C:\Users\Admin>set "path=%C:\Users\Admin\Documents\http%3a%2f%2fcygwin.mirror.constant.com%2f"


J'aimerais que ceci:

%C:\Users\Admin\Documents\http%3a%2f%2fcygwin.mirror.constant.com%2f


Devienne comme ça:


C:\Users\Admin\Documents\http%3a%2f%2fcygwin.mirror.constant.com%2f


Existe-t-il un moyen de faire cela en traitant le variable sur la console svp ?
Messages postés
18149
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
4 juillet 2020
4 887
C:> set var=%C:\Users\Admin\Documents\http%3a%2f%2fcygwin.mirror.constant.com%2f

C:> echo %var%
%C:\Users\Admin\Documents\http%3a%2f%2fcygwin.mirror.constant.com%2f

C:> echo %var:~1,100%
C:\Users\Admin\Documents\http%3a%2f%2fcygwin.mirror.constant.com%2f

Messages postés
12635
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
2 juillet 2020
3 323
Bonjour,

%PATH% est une variable d'environnement, tu devrais changer le nom de ta variable pour t'éviter des problèmes.

Messages postés
130
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
2 juillet 2020
3
Merci pour votre réponse mais j'obtiens toujours le même résultat:

C:\Users\Admin\Documents>set "route=%C:\Users\Admin\Documents\http%3a%2f%2fcygwin.mirror.constant.com%2f"


J'ai toujours le % qui est là et qui me gène....
Messages postés
12635
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
2 juillet 2020
3 323 >
Messages postés
130
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
2 juillet 2020

Ce 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.
Messages postés
130
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
2 juillet 2020
3
merci, j'ai trouvé la solution à mon problème