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

Messages postés
103
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
8 août 2019
- - Dernière réponse : jojol_8144
Messages postés
103
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
8 août 2019
- 21 juil. 2019 à 22:17
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 ?
Afficher la suite 

3 réponses

Messages postés
17794
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 août 2019
4416
0
Merci
hello
essayer
for /f "delims=" %%a in ('dir . /b/s ^| findstr /R "\\mon_repertoire$" ')  do set "path=%%~dpnxa"
echo Le chemin est : %path%
jojol_8144
Messages postés
103
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
8 août 2019
1 -
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
dubcek
Messages postés
17794
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 août 2019
4416 -
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
jojol_8144
Messages postés
103
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
8 août 2019
1 -
Bjr,

Pour une commande xcopy svp ?
dubcek
Messages postés
17794
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 août 2019
4416 -
jojol_8144
Messages postés
103
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
8 août 2019
1 -
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;
Commenter la réponse de dubcek
Messages postés
17794
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 août 2019
4416
0
Merci
dans "\\mon_repertoire$" tu as remplacé mon_repertoire par le nom de ton répertoire ?
dubcek
Messages postés
17794
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 août 2019
4416 -
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
jojol_8144
Messages postés
103
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
8 août 2019
1 -
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
dubcek
Messages postés
17794
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 août 2019
4416 -
protéger les % avec %%
......('dir . /b/s ^| findstr /R "\\http%%3a%%2f%%2fcygwin.mirror.constant.com$" ') ....
jojol_8144
Messages postés
103
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
8 août 2019
1 -
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 ?
dubcek
Messages postés
17794
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 août 2019
4416 -
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

Commenter la réponse de dubcek
Messages postés
12334
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
18 août 2019
2134
0
Merci
Bonjour,

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

jojol_8144
Messages postés
103
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
8 août 2019
1 -
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....
barnabe0057
Messages postés
12334
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
18 août 2019
2134 > jojol_8144
Messages postés
103
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
8 août 2019
-
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.
jojol_8144
Messages postés
103
Date d'inscription
vendredi 8 mars 2019
Statut
Membre
Dernière intervention
8 août 2019
1 -
merci, j'ai trouvé la solution à mon problème
Commenter la réponse de barnabe0057