.BAT > Récupérer chemin d'un dossier [Résolu]

Messages postés
127
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
2 décembre 2019
- - Dernière réponse : micromega
Messages postés
127
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
2 décembre 2019
- 2 déc. 2019 à 15:08
Bonjour,

Dans un chemin où il y a un dossier qui porte un nom non connu, je cherche à récupérer le chemin complet afin de l'utiliser dans une commande de copy (par exemple).

J'avais essayé (entre autre) : dir "C:\Dossier1\NomDossierInconnu" /b /a-d /s
Le dossier est vide, donc pas de commande de recherche pour récupérer le chemin.

Comment avancer dans les dossiers après le "C:\Dossier1\" ? J'ai également essayer "/.." mais sans succès.

Merci pour l'aide...
Afficher la suite 

1 réponse

Messages postés
12429
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
7 décembre 2019
2439
0
Merci
Bonjour,

Essaie ça :
dir C:\Dossier1 /b /ad /s

micromega
Messages postés
127
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
2 décembre 2019
-
Dans le cas où il y aurait plusieurs dossiers après le dossier 1, comment puis-je isoler celui qui m'interesse (par exemple par ordre de l'arborescence) ?

> Je voulais dire, si dans "C:\Dossier1" il y a le sous-dossier "NomDossierInconnu", "AutreA", "AutreB"... comment ne récupérer que le chemin complet de "NomDossierInconnu" ?

Cette commande marche parfaitement dans le cas où il n'y a qu'un dossier après "Dossier1" :
dir C:\Dossier1 /b /ad /s

Mais s'il y a plusieurs dossiers, tous les sous-dossiers de "Dossier1" sont listés, alors que je souhaite récupérer le chemin de "NomDossierInconnu" uniquement.

Merci
barnabe0057
Messages postés
12429
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
7 décembre 2019
2439 > micromega
Messages postés
127
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
2 décembre 2019
-
Par exemple, pour isoler le premier de l'arborescence :

@echo off

for /f "delims=" %%A in ('dir /b /ad "C:\Dossier1" ^| sort /r') do set dossier=%%~fA

echo %dossier%

pause
micromega
Messages postés
127
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
2 décembre 2019
-
Ok, ça marche, mais pour désigner le deuxième dossier ou le troisième, je dois agir où dans le code pour le choisir ?
barnabe0057
Messages postés
12429
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
7 décembre 2019
2439 > micromega
Messages postés
127
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
2 décembre 2019
-
Pour désigner le deuxième ou le troisième il faut utiliser une autre technique :

@echo off
setlocal enabledelayedexpansion

set index=0

for /f "delims=" %%A in ('2^>nul dir /b /ad') do (

set /a index+=1
if !index! EQU 3 (set dossier=%%~fA)

)

echo %dossier%

pause


Avec cet exemple tu obtiens le troisième dossier, tu peux remplacer le 3 par la position que tu souhaites cibler.
micromega
Messages postés
127
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
2 décembre 2019
-
Bonjour Barnabe0057,

Bon, cette fois-ci tout fonctionne à merveille ! Merci pour tes lumières...et ta patience !

Poste résolu !
Commenter la réponse de barnabe0057