.BAT > Chemin de commande inédéquat

[Fermé]
Signaler
Messages postés
131
Date d'inscription
lundi 13 avril 2009
Statut
Membre
Dernière intervention
12 avril 2020
-
Messages postés
13618
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
28 juillet 2021
-
Bonjour, j’utilise le code suivant pour récupérer le nom d’un dossier en fonction de son ordre :

@echo off
setlocal enabledelayedexpansion
set index=0
For /f "delims=" %%A in ('2^>nul dir "%SYSTEMDRIVE%\" /b /ad') do (
set /a index+=1
if !index! EQU 1 (set dossier=%%~fA)
)
echo %dossier%

Cependant, si le « .bat » n’est pas exécuté dans l’endroit même où se trouve le dossier, le code ne fonctionnera pas.

Par exemple ici, je veux récupérer le premier dossier de « SYSTEMDRIVE », si j’exécute le « .bat » à partir du bureau, le chemin en variable contiendra la partie du chemin du bureau (C:\Documents and Settings\...\mon dossier) et non (C:\mon dossier).

Où puis-je agir pour modifier ça ?

Merci

1 réponse

Messages postés
13618
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
28 juillet 2021
4 496
Bonjour,

Voilà la correction :

@echo off
setlocal enabledelayedexpansion
set index=0
For /f "delims=" %%A in ('2^>nul dir "%SYSTEMDRIVE%\" /b /ad') do (
set /a index+=1
if !index! EQU 1 (set dossier=%SYSTEMDRIVE%\%%~A)
)
echo %dossier%
pause