.BAT > Chemin de commande inédéquat

Fermé
micromega Messages postés 131 Date d'inscription lundi 13 avril 2009 Statut Membre Dernière intervention 12 avril 2020 - 12 avril 2020 à 05:18
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 - 12 avril 2020 à 09:06
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
A voir également:

1 réponse

barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917
12 avril 2020 à 09:06
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

0