Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question à un spécialiste des commandes (DOS)

5 réponses
Avatar
Flupke
Désolé si ma question est à la marge de ce forum... quoique...
Je lis dans un fichier de type *.bat que les deux premières lignes en sont :
SET vlcpath="%~dp0%"
CD %vlcpath%
un spécialiste du DOS pourrait-il me décoder et décortiquer le sens de la
première ligne de commande ?
Merci

5 réponses

Avatar
Eric Giffard
"Flupke" a écrit dans le message de news:
Désolé si ma question est à la marge de ce forum... quoique...
Je lis dans un fichier de type *.bat que les deux premières lignes en sont
:
SET vlcpath="%~dp0%"
CD %vlcpath%
un spécialiste du DOS pourrait-il me décoder et décortiquer le sens de la
première ligne de commande ?
Merci


Bonjour
Pas de Dos dans le monde NT/2000/2003/XP !

SET vlcpath="%~dp0%" affecte le nom du répertoire où se trouve ton bat à la
variable "vlcpath"

CD %vlcpath% change de répertoire courant et se place donc dans le
répertoire du bat

A bientôt

Eric Giffard
MCSE Windows 2003
MCT Windows 2000/2003/XP

Enlever les ~ pour une réponse
eric.giffard@~laposte.net (perso)
eric.g@~nextmedia.fr (boulot)

Avatar
Jean-Claude BELLAMY
Dans le message :45a50a71$0$294$,
Flupke a pris la peine d'écrire ce qui suit :
Désolé si ma question est à la marge de ce forum... quoique...
Je lis dans un fichier de type *.bat que les deux premières lignes en
sont : SET vlcpath="%~dp0%"
CD %vlcpath%
un spécialiste du DOS pourrait-il me décoder et décortiquer le sens
de la première ligne de commande ?


Pas besoin de spécialiste pour si peu !

SET vlcpath="%~dp0%"

signifie qu'on affecte la chaine
"%~dp0%"
à la variable d'environnement
vlcpath

Vu la commande suivante, cette variable contient apparemment un nom de
dossier
On aurait pu écrire
CD "%~dp0%"


S'il existe par hasard une variable d'environnement s'appelant "~dp0",
quand on encadre son nom par des "%", son contenu va être explicité
Donc si
~dp0
vaut
x:truc diversbidouilles innommables

=>
SET vlcpath="%~dp0%"
sera explicité en
SET vlcpath="x:truc diversbidouilles innommables"
si bien que
CD %vlcpath%
sera explicité à son tour en
CD "x:truc diversbidouilles innommables"



--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr

Avatar
Jean Pierre Daviau
C:Documents and SettingsTiCouneBureaucmdline.php

@echo %~d1 = C:
@echo %~dp1 = C:Documents and SettingsTiCouneBureau


-------------- Voir le groupe
news://news.microsoft.com/microsoft.public.win2000.cmdpprompt.admin
(anglais)ou
taper
FOR /? sur la ligne de commande.

De plus, la substitution de références de variables FOR a été
améliorée.
Vous pouvez maintenant utiliser la syntaxe optionnelle suivante :

%~I - étend %I en supprimant les guillemets (")
%~fI - étend %I en nom de chemin d'accès reconnu
%~dI - étend %I en lettre de lecteur uniquement
%~pI - étend %I en chemin d'accès uniquement
%~nI - étend %I en nom de fichier uniquement
%~xI - étend %I en extension de fichier uniquement
%~sI - chemin étendu contenant uniquement des noms
courts
%~aI - étend %I en attributs du fichier
%~tI - étend %I en date/heure du fichier
%~zI - étend %I en taille du fichier
%~$PATH:I - parcourt les répertoires de la variable
d'environnement PATH et étend %I en nom du
premier fichier reconnu trouvé. Si le nom de
la
variable d'environnement n'est pas défini ou
que le fichier n'est pas trouvé par la
recherche,
alors ce modificateur étend en chaîne vide

Vous pouvez combiner les modificateurs pour obtenir des résultats
composés :

%~dpI - étend %I en lettre de lecteur et chemin d'accès
uniquement
%~nxI - étend %I en nom de fichier et extension
uniquement
%~fsI - étend %I en nom de chemin complet avec noms
courts
uniquement
%~dp$PATH:i - parcourt les répertoires listés dans la
variable
d'environnement PATH à la recherche de %I et
étend
en lettre de lecteur du premier trouvé.
%~ftzaI - étend %I en DIR comme ligne en sortie

Dans les exemples ci-dessus %I et PATH peuvent être remplacés par
d'autres
valeurs valides. La syntaxe %~ se termine par un nom de variable
FOR valide.
Le choix de noms de variables en majuscules comme %I facilite la
lecture
et empêche toute confusion avec les modificateurs qui ne tiennent
pas compte
de la casse.
Avatar
Flupke
Merci à tous de vos excellentes contributions !
Avatar
Jean-Claude BELLAMY
Dans le message :u5Mq4%,
Jean Pierre Daviau a pris la peine d'écrire ce qui suit :
C:Documents and SettingsTiCouneBureaucmdline.php

@echo %~d1 = C:
@echo %~dp1 = C:Documents and SettingsTiCouneBureau


Bon Dieu, mais c'est bien sûr ! ;-)

Merci JPD d'avoir su corriger la faute de frappe de l'intervenant initial !
(en particulier en supprimant ce % final qui n'avait pas sa place ici)

Cela me semblait bizarre, un tel nom de variable, mais je n'ai pas eu le
réflexe de remplacer ce % par un chiffre de paramètre formel ou une lettre
de variable de boucle FOR (je me ramollis les neurones ! ).


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr