.BAT > Chemin de commande inédéquat

micromega Messages postés 141 Statut Membre -  
barnabe0057 Messages postés 17074 Statut Contributeur -
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 17074 Statut Contributeur 4 925
 
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