.BAT = Changer le chemin de %~dpnx0

Fermé
micromega - 4 mai 2016 à 08:58
 micromega - 5 mai 2016 à 21:53
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 761 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018 123
4 mai 2016 à 10:39
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 13872 Date d'inscription vendredi 6 novembre 2009 Statut Contributeur Dernière intervention 2 novembre 2020 1 418
4 mai 2016 à 21:37
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 13872 Date d'inscription vendredi 6 novembre 2009 Statut Contributeur Dernière intervention 2 novembre 2020 1 418
4 mai 2016 à 09:35
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
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 761 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018 123
Modifié par codeurh24 le 5/05/2016 à 13:03
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
5 mai 2016 à 13:00
hello
pour remonter de 3 niveaux, ajouter :\..\..\..
0
Compris !

Merci pour vos réponses rapides et efficaces.
0