.BAT > Chemin de commande inédéquat

micromega Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   -  
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   -
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 14455 Date d'inscription   Statut Contributeur Dernière intervention   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