OVH Cloud OVH Cloud

Chemin relatif dans un raccourci.

17 réponses
Avatar
Didier
Bonjour world,

J'ai un disque dur externe, et aussi une mémoire USB, qui contiennent de
nombreux documents et raccourcis. Je m'en sert sur plusieurs PC, et
évidement lors de la connexion sur le port USB je ne sais pas d'avance
quelle lettre de lecteur va être affectée. Par exemple X:.

Le problème est le suivant : selon la lettre du lecteur, les raccourcis
présents sont valables sur un PC (celui sur lequel il était connecté), et ne
le sont plus sur un autre, à moins que par hasard la même lettre de lecteur
soit attribuée.

La solution peut être possible : remplacer le chemin en dur, dans le
raccourci, par un chemin relatif. Mais cela n'a pas l'air de fonctionner.

Exemple :

- Il y a un répertoire "X:\Photos\Albums\François"

- Et un autre répertoire "X:\Famille\François" dans lequel j'ai un fichier
raccourci nommé "Photos.lnk" qui pointe sur "X:\Photos\Albums\François".

Je veux éliminer le X: dans les Propriétés du raccourcis. J'ai donc essayé
de remplacer le chemin par "..\..\Photos\Albums\François", mais j'ai le msg
d'erreur " Le nom '..\..\Photos\Albums\François' spécifié dans le champ
Cible n'est pas valide. etc."

J'ai aussi essayé quelque chose comme
"file:///..\..\Photos\Albums\François", a tout hasard.....

La question a déjà été posée au moins depuis 2004, mais restée sans réponse
( voir par exemple
http://www.commentcamarche.net/forum/affich-671149-raccourci-lien-relatif ).
Rien trouvé non plus dans les newsgroups...

D'autres idées ? (....autre que Linux svp... ;-)

7 réponses

1 2
Avatar
Tonio - le Yéti
Le but de la manouvre est donc de double-cliquer sur un raccourci du
support externe pour aller dans un répertoire ( ou ouvrir un fichier
) situé lui même sur le support externe, quelque soit la lettre de
lecteur qui lui a été affecté au moment de la connexion USB sur le
hôte.
C'est + clair ?


Bof,
Quel intérêt de mettre des raccourcis sur le même support (et
tu avais parlé de deux supports : DD et USB), alors que
le navigateur serait tout aussi utile et sans amener le genre
de galère dont tu nous fais part. Et peut-être serait-il judicieux
de nous dire pourquoi tu veux que ces raccourcis fonctionnent ?
Est-pour des fichiers de commande ? Des copies plus "simples" ?
Et si cela t'embête de préciser, dis-le nous (dis-le moi) ;-)


Didier nous a écrit dans son message :
Ben non ça me gêne d'expliquer pourquoi... :-)

Je n'en ai pas parlé pour éviter de rentrer dans des détails hors
sujet.
Mais voilà l'explication :

c'est seulement une question d'organisation et de rangement de
fichiers. Le disque dur contient des documents que l'on peut ranger
de différentes manières, selon une méthode totalement arbitraire.
Pour rechercher un document particulier, dont on ne connaît pas
nécessairement le nom du fichier, on descend intuitivement dans une
arborescence mais on ne cherche pas nécessairement au bon endroit.

Exemple :

Je dois rechercher la facture d'achat de mon écran : "Facture.pdf" (
je pense que ça doit être le nom du fichier, je ne me rappelle
plus.... ). Je ne sais pas où c'est rangé.

Selon l'organisation de mon disque je peux chercher dans :

1/ X: Finance Achat Informatique
ou bien dans
2/ X: Informatique Hardware Ecrans
ou bien dans
3/ X: Archives Année 2003 Factures
ou bien dans..... tout ce que j'ai pu imaginer comme organisation !

En fait dans mon disque dur j'ai :
1/ X: Finance Achat Informatique Ecran 17 pouces.lnk
2/ X: Informatique Hardware Ecrans Facture.lnk
3/ X: Archives Année 2003 Factures Ecran Sony.pdf

Les deux premiers *.lnk désignent évidement le fichier pdf recherché.
Selon la personne qui cherche, son humeur !, sa façon de cogiter, son
intuition, etc.... c'est vraiment très pratique de trouver très vite
ce dont on a besoin. Cela est donc facilité au moyen des multiples
raccourcis parsemés dans de nombreux répertoires.

Je fais de cette façon depuis des années sur un disque local.
Maintenant, pour divers raisons, j'ai besoin de stocker tout cela sur
un disque externe que je trimbale d'un endroit à un autre, et d'un PC
à l'autre. Pour le moment la quantité de documents est faible. J'ai
commencé à expérimenter et c'est vraiment casse-pieds d'avoir des
raccourcis inopérants à cause du X: qui change tout le temps.

Je réfléchis donc à une solution qui me permet de remplacer ou
modifier ou re-créer les fichiers *.lnk (ou des fichiers *.???) qui
soit opérationnelle dans ces circonstances. Actuellement la totalité
de ma base, qui représente des années de boulot, est sur un disque
local G:, et tout les raccourcis font référence à G:. Il y a environ
2.500 fichier *.lnk. Prochainement tout cela va donc être copié sur
un disque dur externe. Et une partie le sera sur une mémoire flash
USB.....
Je précise quand même que l'arborescence du disque n'a pas été
construite au hasard et à la bonne franquette. Mais la diversité des
documents et des entités qui y sont contenus font qu'il n'y a pas
d'organisation plus valable qu'une autre, d'une part. Et d'autre part
je ne suis pas le seul utilisateur, il y a différentes personnes de
différents métiers qui pensent à leur façon. Aucun n'est d'accord sur
la façon dont c'est rangé ! Mais tout le monde l'est sur la facilité
d'utilisation, justement grâce aux raccourcis.

Je suis preneur de toute solution sauf que....
Pour des questions techniques diverses (sécurité, virus,
installation...), il est hors de question de faire tourner une
application quelconque sur ce disque. Par exemple un gestionnaire de
base de données. Il n'y a que des fichiers du type pdf txt jpg mov.
Tout fichier 'actif' est exclu ( exe vbs com bat zip.... ). On peut
éventuellement ajouter un vbs ou un bat à la racine, justement en cas
de nécessité de recherche...
Voilà, je raconterai le reste de ma vie dans un blog, quand je serais
à la retraite !

Et vous, comment vous rangez vos documents dans vos disques ? Comment vous
les retrouver en quelques secondes ?

Didier



(quoique tu demande "dans mes disques", qui n'est pas ton sujet original)
Ben... voilà,
ma facture s'appelle 'Marcelle-écran-mai1998-Digitek-référence.pdf', et
comme cela, avec "rechercher" de Windows (et en supposant qu'elle
ne soit pas là où elle devrait être), je la retrouve facilement (soit par
la date, le type, la référence, le modèle, le fournisseur, et j'en
passe...).
En principe, et comme C'EST une facture, elles se trouve dans un dossier
'FACTURES', ou (éventuellement) dans le dossier du 'CLIENT'.
(je n'ai comme cela que deux endroits où regarder/chercher)
Si la tienne ne s'appelle que 'facture.pdf' (ton exemple), ceci ne peut
évidement pas bien fonctionner.
(Bon, il est vrai que je n'ai qu'une quarantaine de Giga de données de
ce type, et ne connait pas le volume de ce que tu as à traiter.)
Mais chacun fait comme il le sent, et comme tu l'as si bien dit, nous
avons tous notre organisation particulière, et je ne me permettrais
pas (alors que d'habitude je suis assez crétin), de juger la tienne.
Et qu'y pouvons-nous, toi et moi, si "les autres" ne rangent pas là où
ils devraient !? (facture dans FACTURES par exemple,et avec des
sous-dossiers "années" peut-être).
Mais, je te rassure, j'ai le même problème de rangement que toi,
et qu'au cours des années (avec ce que j'ai pu voir de sympa comme
classement chez les autres, et adopté) j'ai changé de "tactiques" plusieurs
fois en 20 ans, et parfois je mets aussi du temps à retrouver un document
assez ancien. D'où l'utilisation d'un nom "qui parle".

Et pour en revenir à ton vrai problème, ça fout le bordel quand ces
données se "promènent" sur des supports qui changent de noms !!!
A cela je n'ai pas la solution, sinon que "je sens" que d'avoir des
raccourcis pour ta gestion de documents ne me paraît pas le meilleur
plan. Dans "mes documents" : pas un seul raccourci (justement pour
ne pas être dépendant de "choses" qui peuvent être faussée.
La fonction "rechercher", en plus d'une organisation (quelle qu'elle soit)
à laquelle tout le monde se tienne me paraît un bien meilleur plan.

Amicalement, Tonio ;-)



Avatar
Didier
Le but de la manouvre est donc de double-cliquer sur un raccourci du
support externe pour aller dans un répertoire ( ou ouvrir un fichier
) situé lui même sur le support externe, quelque soit la lettre de
lecteur qui lui a été affecté au moment de la connexion USB sur le
hôte.
C'est + clair ?






(quoique tu demande "dans mes disques", qui n'est pas ton sujet original)
Ben... voilà,
ma facture s'appelle 'Marcelle-écran-mai1998-Digitek-référence.pdf', et
comme cela, avec "rechercher" de Windows (et en supposant qu'elle
ne soit pas là où elle devrait être), je la retrouve facilement (soit par
la date, le type, la référence, le modèle, le fournisseur, et j'en
passe...).
En principe, et comme C'EST une facture, elles se trouve dans un dossier
'FACTURES', ou (éventuellement) dans le dossier du 'CLIENT'.
(je n'ai comme cela que deux endroits où regarder/chercher)
Si la tienne ne s'appelle que 'facture.pdf' (ton exemple), ceci ne peut
évidement pas bien fonctionner.
(Bon, il est vrai que je n'ai qu'une quarantaine de Giga de données de
ce type, et ne connait pas le volume de ce que tu as à traiter.)
Mais chacun fait comme il le sent, et comme tu l'as si bien dit, nous
avons tous notre organisation particulière, et je ne me permettrais
pas (alors que d'habitude je suis assez crétin), de juger la tienne.
Et qu'y pouvons-nous, toi et moi, si "les autres" ne rangent pas là où
ils devraient !? (facture dans FACTURES par exemple,et avec des
sous-dossiers "années" peut-être).
Mais, je te rassure, j'ai le même problème de rangement que toi,
et qu'au cours des années (avec ce que j'ai pu voir de sympa comme
classement chez les autres, et adopté) j'ai changé de "tactiques" plusieurs
fois en 20 ans, et parfois je mets aussi du temps à retrouver un document
assez ancien. D'où l'utilisation d'un nom "qui parle".

Et pour en revenir à ton vrai problème, ça fout le bordel quand ces
données se "promènent" sur des supports qui changent de noms !!!
A cela je n'ai pas la solution, sinon que "je sens" que d'avoir des
raccourcis pour ta gestion de documents ne me paraît pas le meilleur
plan. Dans "mes documents" : pas un seul raccourci (justement pour
ne pas être dépendant de "choses" qui peuvent être faussée.
La fonction "rechercher", en plus d'une organisation (quelle qu'elle soit)
à laquelle tout le monde se tienne me paraît un bien meilleur plan.

Amicalement, Tonio ;-)





Disons que, pour simplifier, le disque contient des documents concernant le
projet, la réalisation, et la vente d'un bâtiment. Les différents
intervenants, architecte, maçons, artisans, administration, commerçant, sont
succeptible d'avoir a tout moment le disque sous la main pour y copier et/ou
pour consulter un fichier

Par exemple l'ebeniste va y copier la facture de l'escalier. Il va ranger le
fichier "Facture-20080415-105002.pdf" dans
"X:ConstructionIntérieurBoiseries" . D'autre part il ne renomme pas le
fichier car cela correspond à sa propre numérotation.

Le principe adopté pour ce disque, c'est que, lorsqu'un fichier a été rangé,
il ne doit absolument plus être déplacé (1), même si il est mal rangé (
quoique cette notion de 'mal rangé' est très relative ). Il ne doit pas être
non plus renommé (2). D'ailleurs il y a aussi un répertoire "A trier", un
peu trop plein à mon avis, mais ce n'est pas grave. C'est quand on est
pressé et qu'on ne sait pas où ranger.

L'architecte qui fait les comptes a besoin de voir cette facture.
Evidemment, comme tu le dis, il va commencer par une recherche Windows. Il
connait par exemple la date, et si nécessaire il contacte l'ébeniste, pour
retrouver assez facilement le fichier. Mais comme il est minutieux, il va
placer un raccourci de ce fichier là où ça l'intéresse :
"X:ArchitectureSous-traitantsFacturationEscalier intérieur.lnk"

L'architecte peut reprocher à l'ébeniste que c'est mal rangé, ou mal
organisé. Et réciproquement. Tout les points de vue se valent et j'affirme,
expérience à l'appui, qu'il est impossible de trouver la méthode de
rangement idéale qui plait à tout le monde. Par exemple, à partir de la
racine, on peut imaginer un premier niveau de sous-répertoire avec les noms
des utilisateurs. On bien un premier niveau avec des entités ( Architecture
Matrisedoeuvre Maitrisedouvrage Grosoeuvre Réception Vente ). De toute
façon, quelquesoit la méthode, et je pense que c'est partout pareil, c'est
une source de polémiques permanente.

Donc pour couper court a toute polémique à effet joule, ces deux simples
règles ci-dessus, (1) et (2), ont été établies, sachant que les utilisateurs
peuvent créer des raccourcis autant qu'ils veulent, là où ils veulent, nommé
à leur convenance. Tout le monde est satisfait ainsi.

Voilà j'ai un peu re-situé le contexte. Il est évident que lorsqu'une
arbrescence n'est utilisée que par un ou deux utilisateurs qui créent,
nomment et rangent eux même leurs fichiers, l'utilisation de la recherche
Windows, plutôt que la multiplication des raccourcis, est justifiée.

Didier




Avatar
Tonio - le Yéti
Le but de la manouvre est donc de double-cliquer sur un raccourci
du support externe pour aller dans un répertoire ( ou ouvrir un
fichier ) situé lui même sur le support externe, quelque soit la
lettre de lecteur qui lui a été affecté au moment de la connexion
USB sur le hôte.
C'est + clair ?




(quoique tu demande "dans mes disques", qui n'est pas ton sujet
original) Ben... voilà,
ma facture s'appelle 'Marcelle-écran-mai1998-Digitek-référence.pdf',
et comme cela, avec "rechercher" de Windows (et en supposant qu'elle
ne soit pas là où elle devrait être), je la retrouve facilement
(soit par la date, le type, la référence, le modèle, le fournisseur,
et j'en passe...).
En principe, et comme C'EST une facture, elles se trouve dans un
dossier 'FACTURES', ou (éventuellement) dans le dossier du 'CLIENT'.
(je n'ai comme cela que deux endroits où regarder/chercher)
Si la tienne ne s'appelle que 'facture.pdf' (ton exemple), ceci ne
peut évidement pas bien fonctionner.
(Bon, il est vrai que je n'ai qu'une quarantaine de Giga de données
de ce type, et ne connait pas le volume de ce que tu as à traiter.)
Mais chacun fait comme il le sent, et comme tu l'as si bien dit, nous
avons tous notre organisation particulière, et je ne me permettrais
pas (alors que d'habitude je suis assez crétin), de juger la tienne.
Et qu'y pouvons-nous, toi et moi, si "les autres" ne rangent pas là
où ils devraient !? (facture dans FACTURES par exemple,et avec
des sous-dossiers "années" peut-être).
Mais, je te rassure, j'ai le même problème de rangement que toi,
et qu'au cours des années (avec ce que j'ai pu voir de sympa comme
classement chez les autres, et adopté) j'ai changé de "tactiques"
plusieurs fois en 20 ans, et parfois je mets aussi du temps à
retrouver un document assez ancien. D'où l'utilisation d'un nom
"qui parle". Et pour en revenir à ton vrai problème, ça fout le bordel
quand ces
données se "promènent" sur des supports qui changent de noms !!!
A cela je n'ai pas la solution, sinon que "je sens" que d'avoir des
raccourcis pour ta gestion de documents ne me paraît pas le meilleur
plan. Dans "mes documents" : pas un seul raccourci (justement pour
ne pas être dépendant de "choses" qui peuvent être faussée.
La fonction "rechercher", en plus d'une organisation (quelle qu'elle
soit) à laquelle tout le monde se tienne me paraît un bien meilleur
plan. Amicalement, Tonio ;-)


Didier nous a encore écrit dans son message pour "préciser" :
Disons que, pour simplifier, le disque contient des documents
concernant le projet, la réalisation, et la vente d'un bâtiment. Les
différents intervenants, architecte, maçons, artisans,
administration, commerçant, sont succeptible d'avoir a tout moment le
disque sous la main pour y copier et/ou pour consulter un fichier

Par exemple l'ebeniste va y copier la facture de l'escalier. Il va
ranger le fichier "Facture-20080415-105002.pdf" dans
"X:ConstructionIntérieurBoiseries" . D'autre part il ne renomme
pas le fichier car cela correspond à sa propre numérotation.

Le principe adopté pour ce disque, c'est que, lorsqu'un fichier a été
rangé, il ne doit absolument plus être déplacé (1), même si il est
mal rangé ( quoique cette notion de 'mal rangé' est très relative ).
Il ne doit pas être non plus renommé (2). D'ailleurs il y a aussi un
répertoire "A trier", un peu trop plein à mon avis, mais ce n'est pas
grave. C'est quand on est pressé et qu'on ne sait pas où ranger.

L'architecte qui fait les comptes a besoin de voir cette facture.
Evidemment, comme tu le dis, il va commencer par une recherche
Windows. Il connait par exemple la date, et si nécessaire il contacte
l'ébeniste, pour retrouver assez facilement le fichier. Mais comme il
est minutieux, il va placer un raccourci de ce fichier là où ça
l'intéresse : "X:ArchitectureSous-traitantsFacturationEscalier
intérieur.lnk"
L'architecte peut reprocher à l'ébeniste que c'est mal rangé, ou mal
organisé. Et réciproquement. Tout les points de vue se valent et
j'affirme, expérience à l'appui, qu'il est impossible de trouver la
méthode de rangement idéale qui plait à tout le monde. Par exemple, à
partir de la racine, on peut imaginer un premier niveau de
sous-répertoire avec les noms des utilisateurs. On bien un premier
niveau avec des entités ( Architecture Matrisedoeuvre
Maitrisedouvrage Grosoeuvre Réception Vente ). De toute façon,
quelquesoit la méthode, et je pense que c'est partout pareil, c'est
une source de polémiques permanente.
Donc pour couper court a toute polémique à effet joule, ces deux
simples règles ci-dessus, (1) et (2), ont été établies, sachant que
les utilisateurs peuvent créer des raccourcis autant qu'ils veulent,
là où ils veulent, nommé à leur convenance. Tout le monde est
satisfait ainsi.
Voilà j'ai un peu re-situé le contexte. Il est évident que lorsqu'une
arbrescence n'est utilisée que par un ou deux utilisateurs qui créent,
nomment et rangent eux même leurs fichiers, l'utilisation de la
recherche Windows, plutôt que la multiplication des raccourcis, est
justifiée.
Didier


Salut ami Didier,

Dans ton cas (très spécial) ce devrait être une secrétaire qui
s'occuperait de la gestion des documents. N'importe qui peut
enregistrer n'importe quoi et n'importe où... pas cool à gérer.
(Et mettre des raccourcis, n'arrange pas du tout cet état de
chose, loin de là.)
Comme apparement tu ne veux/peux toucher à rien, et qu'il
apparaît impossible "d'éduquer" les différents acteurs qui
interviennent dans ce fichu bordel (pardon), je vois les choses
un peu sombre pour ton informatique.
Un jour ou l'autre, il faudra bien que tu mettes des procédures
en place, pour que tous puisse s'y plier...

Allez, bonne journée. Ceci dépassant largement le cadre de
ce que tu nous avais soumis au départ, et pour moi insoluble.
(On ne peux rien construire dans du sable.) Amicalement ;-)





Avatar
Daniel92
*JF* écrit dans
<news:
|
| *Jean-Claude BELLAMY* avait écrit dans
| <news:
| >
| >> *Didier* avait demandé :
| >>>
| >>> Le but de la maneuvre est donc de double-cliquer sur un raccourci du
| >>> support externe pour aller dans un répertoire ( ou ouvrir un fichier )
| >>> situé lui même sur le support externe, quelquesoit la lettre de lecteur
| >>> qui lui a été affecté au moment de la connexion USB sur le hôte.
|
| >> Fais un batch sur le volume externe avec ces commandes :
| >> CHCP 1252
| >> start "" "%CD%PhotosAlbumsFrançois"
|
| > [...]
| > la variable %CD% donne le répertoire EN COURS , et non
| > pas le répertoire d'où la commande est lancée !
|
| [...]
| C'est destiné à répondre à la demande :
| ouvrir un dossier depuis la racine.
| Souriard aussi.


Tu n'en étais pas très loin , il faut mettre dans le batch :

@echo off
start "" "%CD:~0,2%PhotosAlbumsFrançois"

(en cherchant un peu dans le Registre, on devrait
pouvoir ouvrir l'Invite en "réduit" )


En tirant à l'extrême les possibilités des raccourcis
.lnk , on arrive à utiliser CD via Start ainsi que ..
un exemple :

Doc_and_Set.lnk
Cible:<< %windir%System32cmd.exe /c start "" "%cd%" >>
Démarrer dans : << %AllUsersProfile%.. >>


--
Daniel92.
======
Avatar
JF
*Bonjour Daniel92* !
<news:

Le but de la maneuvre est donc de double-cliquer sur un raccourci du
support externe pour aller dans un répertoire ( ou ouvrir un fichier )
situé lui même sur le support externe, quelquesoit la lettre de lecteur
qui lui a été affecté au moment de la connexion USB sur le hôte.
Fais un batch sur le volume externe avec ces commandes :

CHCP 1252
start "" "%CD%PhotosAlbumsFrançois"
[...]

la variable %CD% donne le répertoire EN COURS , et non
pas le répertoire d'où la commande est lancée !


[...]
C'est destiné à répondre à la demande :
ouvrir un dossier depuis la racine.
Souriard aussi.


Tu n'en étais pas très loin ,


Je savais bien que j'écrivais une couennerie, mais je voulais montrer à
Didier une solution batch avec l'utilisation de la variable %CD%
fonctionnelle, malgré tout, *depuis la racine* de la clé. Mais certes
pas idéale, j'en conviens.

Je pensais ensuite développer avec Didier en passant à l'utilisation
des paramètres remplaçables pour que le batch continue à fonctionner
depuis d'autres dossiers de la clé.

Le rouleau compresseur étant passé, et Didier s'étant enfui, nous ne
saurons sans doute jamais si quelque chose a été utile à Didier, et
comment.

Remarquer qu'on a eu bien du mal à obtenir son cahier des charges.

il faut mettre dans le batch :
start "" "%CD:~0,2%PhotosAlbumsFrançois"


Tu n'as pas testé !
Je te laisse réfléchir à l'intérêt de mettre en premier :
CHCP 1252

Et on va t'expliquer à nouveau que %CD% est, à proprement parler,
inadapté. La variable qui contient le chemin d'un batch est le
paramètre remplaçable %0
C'est donc cette variable que tu dois modifier en %0~d pour obtenir la
lettre du volume amovible.

CHCP 1252
set LECTEUR=%~d0
start "" "%LECTEUR%PhotosAlbumsFrançois"

... qui fonctionne depuis n'importe quel dossier de la clé.

(en cherchant un peu dans le Registre, on devrait
pouvoir ouvrir l'Invite en "réduit" )


Super. Où tu dis ?

En tirant à l'extrême les possibilités des raccourcis
.lnk , on arrive à utiliser CD via Start ainsi que ..
un exemple :

Doc_and_Set.lnk
Cible:<< %windir%System32cmd.exe /c start "" "%cd%" >>
Démarrer dans : << %AllUsersProfile%.. >>


Oui je vois, en éditant ses Propriétés.
Mais inutilisable pour la question posée, hélas.
Merci Daniel.

HORS-SUJET :
Je sais que tu utilises les techniques susdites pour sauvegarder tes
fichiers en ajoutant la date et l'heure au nom.
Voici une version qui me donne toute satisfaction :

set D=%DATE:/=%
set D=%D:~4,4%.%D:~2,2%.%D:~0,2%
set T=%TIME::=%
set T=%T:~0,6%
set T=%T:~0,2%h%T:~2,2%'%T:~4,4%
set DateHeure=_%D%_%T%
set nom=%~n1%
set extension=%~x1%
set source=%1
set cible=%nom%%Dateheure%%extension%
set cible="%~dp1%cible%"
copy %source% %cible%

@goto eof:
==================== EXPLICATION DES CODES
==================== d = lettre lecteur
p = chemin
n = nom
x = extension
Source : Aide et Support ==>
Démarrer>Exécuter>HH NTCMDS.CHM::/percent.htm

Lacher un fichier sur ce batch, ou l'utiliser en call depuis un autre
batch.

Amicalement,

--
Salutations, Jean-François
Index du site de PN : www.d2i.ch/pn/az
Outlook Express : Suivez vos fils avec [CTL+H]
Montrez-nous ce que vous voyez : http://fspsa.free.fr/copiecran.htm





Avatar
Daniel92
*JF* écrit dans
<news:480af80d$0$674$
|
| *Bonjour Daniel92* !
| <news:
|
| >>>>> Le but de la maneuvre est donc de double-cliquer sur un raccourci du
| >>>>> support externe pour aller dans un répertoire ( ou ouvrir un fichier )
| >>>>> situé lui même sur le support externe, quelquesoit la lettre de lecteur
| >>>>> qui lui a été affecté au moment de la connexion USB sur le hôte.
| >>>> Fais un batch sur le volume externe avec ces commandes :
| >>>> CHCP 1252
| >>>> start "" "%CD%PhotosAlbumsFrançois"
| >>> [...]
| >>> la variable %CD% donne le répertoire EN COURS , et non
| >>> pas le répertoire d'où la commande est lancée !
| >>
| >> [...]
| >> C'est destiné à répondre à la demande :
| >> ouvrir un dossier depuis la racine.
|
| > Tu n'en étais pas très loin ,
|
| Je savais bien que j'écrivais une couennerie, mais je voulais montrer
| à Didier une solution batch avec l'utilisation de la variable %CD%
| fonctionnelle, malgré tout, *depuis la racine* de la clé. Mais certes
| pas idéale, j'en conviens.
|
| Je pensais ensuite développer avec Didier en passant à l'utilisation
| des paramètres remplaçables pour que le batch continue à fonctionner
| depuis d'autres dossiers de la clé.
|
| Le rouleau compresseur étant passé, et Didier s'étant enfui, nous ne
| saurons sans doute jamais si quelque chose a été utile à Didier, et
| comment.

:- ) ...et oui tu prêches un convaincu .


| Remarquer qu'on a eu bien du mal à obtenir son cahier des charges.
|
| > il faut mettre dans le batch :
| > start "" "%CD:~0,2%PhotosAlbumsFrançois"
|
| Tu n'as pas testé !

Toi non plus d'ailleurs ! (et je t'épargnerai le
"à nouveau" pas très sympa que tu m'as mis plus bas)


| Je te laisse réfléchir à l'intérêt de mettre en premier :
| CHCP 1252
|
| Et on va t'expliquer à nouveau que %CD% est, à proprement parler,
| inadapté. La variable qui contient le chemin d'un batch est le
| paramètre remplaçable %0

... que CD peut parfaitement être utilisé (voir plus bas)


| C'est donc cette variable que tu dois modifier en %0~d
| pour obtenir la lettre du volume amovible.
|
| CHCP 1252
| set LECTEUR=%~d0
| start "" "%LECTEUR%PhotosAlbumsFrançois"

Une fois corrigé le CHCP , ceci marche aussi :

@echo off
CHCP 1252 >NUL
start "" "%CD:~0,2%PhotosAlbumsFrançois"

C'est la mise en application de l'aide (Aide et Support)
que tu cites plus bas :

Invite de commandes puis
<< HH NTCMDS.CHM::/percent.htm >>

« Vous pouvez toutefois affecter le paramètre
à une variable d'environnement
puis manipuler la variable d'environnement. »

auquel il faut ajouter un extrait ... de l'aide de
la commande SET dans cmd.exe ...

Invite de commandes puis
<< SET /? >>

« Vous pouvez aussi spécifier des sous-chaînes
pour une expression.

%PATH:~10,5%

développe... »

Tu utilises d'ailleurs cette syntaxe un peu plus bas
dans ton batch sur l'heure.


|
| ... qui fonctionne depuis n'importe quel dossier de la clé.

... ou plutôt depuis n'importe quel dossier
du même lecteur.


| > (en cherchant un peu dans le Registre, on devrait
| > pouvoir ouvrir l'Invite en "réduit" )
|
| Super. Où tu dis ?

J'ai dit "en cherchant un peu" ; sinon je t'eusses donné
la réponse.


| > En tirant à l'extrême les possibilités des raccourcis
| > .lnk , on arrive à utiliser CD via Start ainsi que ..
| > un exemple :
|
| > Doc_and_Set.lnk
| > Cible:<< %windir%System32cmd.exe /c start "" "%cd%" >>
| > Démarrer dans : << %AllUsersProfile%.. >>
|
| Oui je vois, en éditant ses Propriétés.
| Mais inutilisable pour la question posée, hélas.
| Merci Daniel.

J'ai bien essayé pourtant :-(

Mais une petite explication s'impose:

La variable CD n'existe pas et n'est pas géré dans
l'environnement de explorer.exe.

La variable CD se crée au moment du lancement
de chaque instance de cmd.exe; sa durée de vie et
l'évolution de son contenu sont liées à l'existence de
cette instance cmd.exe .

En démarrant cmd.exe à partir d'un raccourci .lnk ,
explorer.exe transfert le chemin de "Démarrer dans : "
dans la variable CD de l'environnement de cmd.exe .
Si ce chemin est vide, c'est le chemin du dossier
contenant ce raccourci .lnk qui sera repris dans CD .

=========
... Et j'avais dû me planter en modifiant les champs
"timbre poste" des Propriétés du raccourci .
CAR je viens de TROUVER en écrivant ce message.

racc-François-cmd.lnk
Cible:
<< %windir%System32cmd.exe /c start "" "%cd:~0,2%PhotosAlbumsFrançois" >>
Démarrer dans : << >> (impérativement VIDE!)

(Suppose l'existence du dossier PhotosAlbumsFrançois
dans le Lecteur contenant ce raccourci. )

Je m'attendais à avoir à rajouter CHCP dans "Cible: " ,
mais explorer.exe transmet le chemin correct à
la variable CD .


| HORS-SUJET :
| Je sais que tu utilises les techniques susdites pour sauvegarder tes
| fichiers en ajoutant la date et l'heure au nom.
| Voici une version qui me donne toute satisfaction :
|
| set D=%DATE:/=%
| set D=%D:~4,4%.%D:~2,2%.%D:~0,2%
| set T=%TIME::=%
| set T=%T:~0,6%
| set T=%T:~0,2%h%T:~2,2%'%T:~4,4%
| set DateHeure=_%D%_%T%
| set nom=%~n1%
| set extension=%~x1%
| set source=%1
| set cible=%nom%%Dateheure%%extension%
| set cible="%~dp1%cible%"
| copy %source% %cible%
|
| @goto eof:
| ==================== | EXPLICATION DES CODES
| ==================== | d = lettre lecteur
| p = chemin
| n = nom
| x = extension
| Source : Aide et Support ==>
| Démarrer>Exécuter>HH NTCMDS.CHM::/percent.htm
|
| Lacher un fichier sur ce batch, ou l'utiliser en call depuis un autre
| batch.


Là, tu es un peu vache avec moi. :-)

Il me manquait la signification de %VAR:ch1=ch2%
que j'avais complètement oubliée pour comprendre
%DATE:/=% et %TIME::=% et que j'ai retrouvé
dans SET /? (sauf si tu as une meilleure page d'aide) .

Tu n'as pas dû t'amuser pour le mettre au point.

Personnelllement je ne suis pas très favorable à
l'utilisation des points dans un nom de fichiers; ils
sont sources de confusion avec les extensions dans
beaucoup de programmes.

J'ai repris la partie date heure de ta routine pour
l'essayer :

---------------------------------------
@echo off
set D=%DATE:/=%
set D=%D:~4,4%.%D:~2,2%.%D:~0,2%
set T=%TIME::=%
set T=%T:~0,6%
set T=%T:~0,2%h%T:~2,2%'%T:~4,4%
set DateHeure=_%D%_%T%
set nom=fichier-dater-jf
set extension=.txt
set cible=%nom%%Dateheure%%extension%
echo cible= %cible%
pause
echo pouet! pouet! >%cible%
echo. >>%cible%
goto :EOF

---------------------------------------

Ta variable " cible" contient ceci
cible=fichier-dater-jf_2008.04.21_ 7h15'59.txt
et l'espace dans le nom provoque la création
d'un fichier << fichier-dater-jf_2008.04.21_ >>
donc de Type: Fichier 21_

Le contenu du fichier est
----------------
pouet! pouet! 7h15'59.txt
7h15'59.txt

----------------


Dans ma routine je remets un 0 si l'heure est
inférieure à 10h et je préfère les tirets aux points
dans le nom des fichiers :

rem nom de base du fichier
set lelog=fichier-dater
rem ajout de date et heure
set timh=%time:~0,2%%time:~3,2%
if %timh% leq 999 set timh=0%time:~1,1%%time:~3,2%
set lelog=%lelog%_%date:~8,2%%date:~3,2%%date:~0,2%-%timh%


|
| Amicalement,

Itou , Jean-François .


--
Daniel92.
======
Avatar
JF
*Bonjour Daniel92* !
<news:

Je fais un peu de ménage....
Hop !
Reprenons :

je viens de TROUVER en écrivant ce message.

racc-François-cmd.lnk
Cible:
<< %windir%System32cmd.exe /c start "" "%cd:~0,2%PhotosAlbumsFrançois"
Démarrer dans : << >> (impérativement VIDE!)



(Suppose l'existence du dossier PhotosAlbumsFrançois
dans le Lecteur contenant ce raccourci. )


BRAVO ! Ça marche.


Je m'attendais à avoir à rajouter CHCP dans "Cible: " ,
mais explorer.exe transmet le chemin correct à
la variable CD .


Mystères de l'ouest.




HORS-SUJET :
Je sais que tu utilises les techniques susdites pour sauvegarder tes
fichiers en ajoutant la date et l'heure au nom.
Voici une version qui me donne toute satisfaction :

set D=%DATE:/=%
.......



Il me manquait la signification de %VAR:ch1=ch2%
que j'avais complètement oubliée pour comprendre
%DATE:/=% et %TIME::=% et que j'ai retrouvé
dans SET /? (sauf si tu as une meilleure page d'aide) .
Tu n'as pas dû t'amuser pour le mettre au point.


J'ai pas beaucoup cherché. Nous parlions déjà tous deux en 2005 de la
problématique des dates quand quelqu'un nous a donné un petit coup de
pouce
http://groups.google.fr/group/microsoft.public.fr.windowsxp/msg/e9304bfce486771a



Personnelllement je ne suis pas très favorable à
l'utilisation des points dans un nom de fichiers; ils
sont sources de confusion avec les extensions dans
beaucoup de programmes.


J'avais utilisé des tirets en premier lieu.
Je tiendrai compte de ta remarque, quoique je n'ai jamais été confronté
à ce problème (j'utilise des guillemets).



J'ai repris la partie date heure de ta routine pour
l'essayer :

---------------------------------------
@echo off
set D=%DATE:/=%
set D=%D:~4,4%.%D:~2,2%.%D:~0,2%
set T=%TIME::=%
set T=%T:~0,6%
set T=%T:~0,2%h%T:~2,2%'%T:~4,4%
set DateHeure=_%D%_%T%
set nom=fichier-dater-jf
set extension=.txt
set cible=%nom%%Dateheure%%extension%
echo cible= %cible%
pause
echo pouet! pouet! >%cible%
echo. >>%cible%
goto :EOF

---------------------------------------

Ta variable " cible" contient ceci
cible=fichier-dater-jf_2008.04.21_ 7h15'59.txt
et l'espace dans le nom provoque la création
d'un fichier << fichier-dater-jf_2008.04.21_ >>
donc de Type: Fichier 21_

Le contenu du fichier est
----------------
pouet! pouet! 7h15'59.txt
7h15'59.txt

----------------


Ben oui mais si tu retires les guillemets je ne réponds de rien.
Il faut tester impérativement dans un dossier avec un chemin comportant
des espaces et avec des fichiers itou. Je me suis fait piéger la
première fois.




Dans ma routine je remets un 0 si l'heure est
inférieure à 10h et je préfère les tirets aux points
dans le nom des fichiers :

rem nom de base du fichier
set lelog=fichier-dater
rem ajout de date et heure
set timh=%time:~0,2%%time:~3,2%
if %timh% leq 999 set timh=0%time:~1,1%%time:~3,2%
set lelog=%lelog%_%date:~8,2%%date:~3,2%%date:~0,2%-%timh%


IF ... LEQ Inférieur ou égal à
HH ntcmds.chm::/if.htm
Ça peut servir. Merci !

--

Salutations, Jean-François.



1 2