.BAT = Changer le chemin de %~dpnx0

micromega -  
 micromega -
Bonjour,

J'utilise ce code
set currentpath=%~dpnx0
pour recevoir le chemin de là où se trouve le fichier .bat.

Cependant, j'aimerais pouvoir me déplacer à partir de ce chemin pour utiliser un autre chemin.

Exemple : le fichier ".bat" est dans F:\Mon\Dossier 1\fichier.bat
la commande set currentpath=%~dpnx0 me donne bien ce chemin, mais j'aimerais aller dans F:\Mon\Dossier 2\Dossier 3\fichier.exe

Comment puis-je changer de dossier à partir de là ?

Merci

4 réponses

codeurh24 Messages postés 760 Date d'inscription   Statut Membre Dernière intervention   123
 
Bonjour.

currentPath est une variable creer par set.
currentPath est une variable affecté par une autre variable ms-dos
qui renvoi le chemin et son fichier.
d représent la lettre du lecteur
p représente le chemin du fichier
n représente le nom du fichier
x représent l'extension du fichier.

Pour modifier ce chemin il faut récupérer le chemin sans le fichier.
~dp0

une fois le chemin obtenu par la variable ~dp0 on y ajoute les deux point pour remonter d'un dossier.
~dp0..\
Dans le dossier superieur on precise le dossier dans le quel on souhaite ce placé suivi du nom du fichier si on le souhaite. Dans mon cas un fichier html
%~dp0..\mars-radio-dnb-2\index.html

Pour concerver la variable currentPath j'ai crée un autre variable
qui ce nome cheminAuxiliare et je lui est affecté le chemin que je désirais.

Il suffit de mettre echo devant cette variable pour l'afficher ou sinon de retirer echo pour lancé le programme. Ici dans mon cas ça lance une page html.

@echo off
set currentpath=%~dp0
set cheminAuxiliare=%~dp0..\mars-radio-dnb-2\index.html
%cheminAuxiliare%
pause
1
Mars Radio DNB Messages postés 14753 Date d'inscription   Statut Contributeur Dernière intervention   1 420
 
merci mon ami^^ de venir a la rescousse!
l'union fait la force^^ ou le nions fait la force lol je sait plus lol mdr.............
0
Mars Radio DNB Messages postés 14753 Date d'inscription   Statut Contributeur Dernière intervention   1 420
 
salut,
je me souviens plus ca fait longtemps
mais à partir de ce chemin tu creer un fichier contenant les variable des chemin que tu appelle avec la commande call je crois (faut que je verif ce soir... si on ta pas répondu entre temps).

je me souviens plus mais si je cherche dans mes code je doit le retrouver...

0
micromega
 
Bonjour et merci pour vos aides !

En effet la solution de codeurh24 semble fonctionner. Merci à toi.

Par contre tu indique "une fois le chemin obtenu par la variable ~dp0 on y ajoute les deux point pour remonter d'un dossier." >> 2 points pour remonter d'un dossier, mais si l'on souhaite remonter de 3 ou 4 dossiers par exemple cela fonctionne ou alors il y a une autre technique ?
0
codeurh24 Messages postés 760 Date d'inscription   Statut Membre Dernière intervention   123
 
remonter d'un dossier ..
remonter de 2 dossiers ..\..
remonter de 3 dossiers ..\..\..
remonter de 4 dossiers ..\..\..\..

tu peux jouer a ça avec cd en ligne de commande
cd ..
0
dubcek Messages postés 19021 Statut Contributeur 5 639
 
hello
pour remonter de 3 niveaux, ajouter :\..\..\..
0
micromega
 
Compris !

Merci pour vos réponses rapides et efficaces.
0