Retrouver le chemin de répertoire en batch

Résolu
jojol_8144 Messages postés 142 Statut Membre -  
jojol_8144 Messages postés 142 Statut Membre -
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

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    essayer
    for /f "delims=" %%a in ('dir . /b/s ^| findstr /R "\\mon_repertoire$" ')  do set "path=%%~dpnxa"
    echo Le chemin est : %path%
    0
    1. jojol_8144 Messages postés 142 Statut Membre 3
       
      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 ?
      0
    2. jojol_8144 Messages postés 142 Statut Membre 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
      0
    3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      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
      0
    4. jojol_8144 Messages postés 142 Statut Membre 3
       
      Bjr,

      Pour une commande xcopy svp ?
      0
    5. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      lui peut-etre
      https://www.commentcamarche.net/download/s/robocopy
      0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    dans "\\mon_repertoire$" tu as remplacé mon_repertoire par le nom de ton répertoire ?
    0
    1. jojol_8144 Messages postés 142 Statut Membre 3
       
      Bonjour,

      Oui c'est ce que j'ai fais
      0
    2. jojol_8144 Messages postés 142 Statut Membre 3
       
      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
      0
    3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      que donne, dans une fenêtre DOS, juste
      dir . /b/s | findstr /R "\\ton_repertoire$"  
      0
    4. jojol_8144 Messages postés 142 Statut Membre 3
       
      Findstr n'est pas reconnu:


      C:\Users\Admin\Documents>dir . /b/s | findstr /R "\\repertoire"
      'findstr' n’est pas reconnu en tant que commande interne
      ou externe, un programme exécutable ou un fichier de commandes.


      Vous n'auriez pas une solution plus fonctionnel svp ?

      Merci par avance
      0
    5. jojol_8144 Messages postés 142 Statut Membre 3
       
      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
      0
  3. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Bonjour,

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

    0
    1. jojol_8144 Messages postés 142 Statut Membre 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....
      0
      1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > jojol_8144 Messages postés 142 Statut Membre
         
        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.
        0
    2. jojol_8144 Messages postés 142 Statut Membre 3
       
      merci, j'ai trouvé la solution à mon problème
      0