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

script batch

17 réponses
Avatar
fg
Bonjour,

Sur XP, je souhaite disposer d'un batch qui me fournirait le chemin
complet d'un répertoire donné.
Etant peu doué en la matière, je fais appel aux experts !

Merci.

fg

10 réponses

1 2
Avatar
fg
Le 16/03/2012 16:36, a écrit :
Bonjour,

Sur XP, je souhaite disposer d'un batch qui me fournirait le chemin
complet d'un répertoire donné.
Etant peu doué en la matière, je fais appel aux experts !

Merci.

fg



Pour bien me faire comprendre, je connais le nom du répertoire, mais pas
la lettre de la partition qui l'accueille

fg
Avatar
Jean-Claude BELLAMY
Le vendredi 16/03/2012 16:47:02, a écrit dans le message
<news:4f636077$0$18064$ ce qui suit :
Le 16/03/2012 16:36, a écrit :
Bonjour,

Sur XP, je souhaite disposer d'un batch qui me fournirait le chemin
complet d'un répertoire donné.
Etant peu doué en la matière, je fais appel aux experts !

Merci.

fg



Pour bien me faire comprendre, je connais le nom du répertoire, mais pas la
lettre de la partition qui l'accueille



Tu demandes là un batch extra-lucide ! ;-)

Il faut forcément une info supplémentaire.

Réfléchis une yocto-seconde : comment veux-tu déduire la lettre d'un
chemin à partir du seul chemin sans la lettre ?

P.ex. j'ai DEUX dossiers "captures" sur mes disques D: et G:
("D:captures" et "G:captures")

Donc à partir du nom "captures", je ne peux absolument pas en déduire
la lettre de la partition, puisque ce peut être aussi bien "D:" que
"G:", A MOINS QUE d'autres infos soient fournies (nom d'un fichier
spécifique contenu dans un seul dossier, taille, ...)

Donc ton problème est :
- soit INSOLUBLE
- soit INCOMPLET
- soit très mal posé !



--

May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP Expert IT Pro]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Avatar
Sergio
Le Fri, 16 Mar 2012 17:50:39 +0100, Jean-Claude BELLAMY a écrit :

Sur XP, je souhaite disposer d'un batch qui me fournirait le chemin
complet d'un répertoire donné.
Etant peu doué en la matière, je fais appel aux experts !



Pour bien me faire comprendre, je connais le nom du répertoire, mais
pas la lettre de la partition qui l'accueille



Tu demandes là un batch extra-lucide ! ;-)

Il faut forcément une info supplémentaire.

Donc ton problème est :
- soit INSOLUBLE
- soit INCOMPLET
- soit très mal posé !



Je suppose qu'à partir de "..tototiti", à partir du répertoire courant,
on en déduise "D:tututototiti" (si le répertoire courant est d:tutu
machin).

Il y a bien les expressions du style %~f1 qui donne le répertoire complet
de la variable %1. Malheureusement (ou je n'ai rien compris) ça ne marche
qu'à partir des arguments passés en paramètres...

(que le bash Unix est plus confortable pour ce genre de manip...).

PS: La doc des fonctions du style %~f1 est une gageure à trouver. Par
exemple ici :
http://ss64.com/nt/syntax-args.html

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Avatar
at
Jean-Claude BELLAMY avait prétendu :
Le vendredi 16/03/2012 16:47:02, a écrit dans le message
<news:4f636077$0$18064$ ce qui suit :
Le 16/03/2012 16:36, a écrit :
Bonjour,

Sur XP, je souhaite disposer d'un batch qui me fournirait le chemin
complet d'un répertoire donné.
Etant peu doué en la matière, je fais appel aux experts !

Merci.

fg



Pour bien me faire comprendre, je connais le nom du répertoire, mais pas la
lettre de la partition qui l'accueille



Tu demandes là un batch extra-lucide ! ;-)

Il faut forcément une info supplémentaire.

Réfléchis une yocto-seconde : comment veux-tu déduire la lettre d'un chemin à
partir du seul chemin sans la lettre ?

P.ex. j'ai DEUX dossiers "captures" sur mes disques D: et G: ("D:captures"
et "G:captures")

Donc à partir du nom "captures", je ne peux absolument pas en déduire la
lettre de la partition, puisque ce peut être aussi bien "D:" que "G:", A
MOINS QUE d'autres infos soient fournies (nom d'un fichier spécifique contenu
dans un seul dossier, taille, ...)

Donc ton problème est :
- soit INSOLUBLE
- soit INCOMPLET
- soit très mal posé !




Sinon, il peut faire ça:
[ les copier/coller sont à finir après GOTO G, c'est toujours la même
chose... il y a plus esthétique mais comme ça c'est facile à
comprendre.
L'ensemble est à copier dans un fichier avec l'extension .bat
On appelle le batch avec comme argument le nom du répertoire et
éventuellement ces sous répertoires si il n'est pas à la racine.

Sinon, mais c'est plus long, il y a la commande

dir /s | findstr "<i386>"

(avec i386 à remplacer par le nom du dossier)


-----------------------le batch--->


@ECHO OFF

IF NOT EXIST C:%1 GOTO D

echo %1 est dans C:

:D
IF NOT EXIST D:%1 GOTO E
echo %1 est dans D:
:E
IF NOT EXIST E:%1 GOTO F
echo %1 est dans E:
:F
IF NOT EXIST F:%1 GOTO G
echo %1 est dans F:
:G
IF NOT EXIST G:%1 GOTO H

:H
IF NOT EXIST H:%1 GOTO I

:I
IF NOT EXIST I:%1 GOTO J

:J
IF NOT EXIST J:%1 GOTO K

:K
IF NOT EXIST K: GOTO L

:L
IF NOT EXIST L: GOTO M

:M
IF NOT EXIST M: GOTO N

:N
IF NOT EXIST N: GOTO O

:O
IF NOT EXIST O: GOTO P

:P
IF NOT EXIST P: GOTO Q
:
:Q
IF NOT EXIST Q: GOTO R

:R
IF NOT EXIST R: GOTO S

:S
IF NOT EXIST S: GOTO T

:T
IF NOT EXIST T: GOTO U

:U
IF NOT EXIST U: GOTO V

:V
IF NOT EXIST V: GOTO W

:W
IF NOT EXIST w: GOTO X

:X
IF NOT EXIST X: GOTO Y

:Y
IF NOT EXIST Y: GOTO Z

:Z
IF NOT EXIST Z: GOTO END

:END
Avatar
fg
Le 16/03/2012 17:50, Jean-Claude BELLAMY a écrit :
Le vendredi 16/03/2012 16:47:02, a écrit dans le message
<news:4f636077$0$18064$ ce qui suit :
Le 16/03/2012 16:36, a écrit :
Bonjour,

Sur XP, je souhaite disposer d'un batch qui me fournirait le chemin
complet d'un répertoire donné.
Etant peu doué en la matière, je fais appel aux experts !

Merci.

fg



Pour bien me faire comprendre, je connais le nom du répertoire, mais
pas la lettre de la partition qui l'accueille



Tu demandes là un batch extra-lucide ! ;-)

Il faut forcément une info supplémentaire.

Réfléchis une yocto-seconde : comment veux-tu déduire la lettre d'un
chemin à partir du seul chemin sans la lettre ?



à partir d'un nom de répertoire unique, peut-être

P.ex. j'ai DEUX dossiers "captures" sur mes disques D: et G:
("D:captures" et "G:captures")

Donc à partir du nom "captures", je ne peux absolument pas en déduire la
lettre de la partition, puisque ce peut être aussi bien "D:" que "G:", A
MOINS QUE d'autres infos soient fournies (nom d'un fichier spécifique
contenu dans un seul dossier, taille, ...)

Donc ton problème est :
- soit INSOLUBLE


tel que je le pose ...
- soit INCOMPLET


sans doute
- soit très mal posé !
sûrement !



Je vais essayer ...

Je veux sauvegarder des données qui se trouvent à un endroit précis de
mon disque dur système (Source) que je veux sauvegarder simultanément
sur des supports différents, dans quatre répertoires de noms différents
: R1, R2, R3, R4.

R1 se trouve sur le disque dur du système en partition W:
R2 est sur une clé USB
R3 et R4 sont sur des disques durs USB.

Les mystères de l'informatique font que parfois (je devrais plutôt dire
souvent) les lettres des partitions changent et ne correspondent plus
aux chemins R1...R4 qui ont été donnés à l'utilitaire de sauvegarde
(j'utilise Cobian Backup 10).

Dans cas je ne sais pas faire autrement, avant de lancer le programme,
que de rétablir les bonnes lettres de partition avec le gestionnaire de
disques de XP.

Et ce que je veux obtenir, c'est retrouver R1, R2, R3, R4 où ils sont,
automatiquement, et faire mes sauvegardes, sans avoir à rétablir les
bonnes lettres de partition. Je précise encore que les destinations R1 à
R4 portent des noms distincts et uniques.

Merci



































Avatar
at
Après mûre réflexion, a écrit :
Le 16/03/2012 17:50, Jean-Claude BELLAMY a écrit :
Le vendredi 16/03/2012 16:47:02, a écrit dans le message
<news:4f636077$0$18064$ ce qui suit :
Le 16/03/2012 16:36, a écrit :
Bonjour,

Sur XP, je souhaite disposer d'un batch qui me fournirait le chemin
complet d'un répertoire donné.
Etant peu doué en la matière, je fais appel aux experts !

Merci.

fg



Pour bien me faire comprendre, je connais le nom du répertoire, mais
pas la lettre de la partition qui l'accueille



Tu demandes là un batch extra-lucide ! ;-)

Il faut forcément une info supplémentaire.

Réfléchis une yocto-seconde : comment veux-tu déduire la lettre d'un
chemin à partir du seul chemin sans la lettre ?



à partir d'un nom de répertoire unique, peut-être

P.ex. j'ai DEUX dossiers "captures" sur mes disques D: et G:
("D:captures" et "G:captures")

Donc à partir du nom "captures", je ne peux absolument pas en déduire la
lettre de la partition, puisque ce peut être aussi bien "D:" que "G:", A
MOINS QUE d'autres infos soient fournies (nom d'un fichier spécifique
contenu dans un seul dossier, taille, ...)

Donc ton problème est :
- soit INSOLUBLE


tel que je le pose ...
- soit INCOMPLET


sans doute
- soit très mal posé !
sûrement !



Je vais essayer ...

Je veux sauvegarder des données qui se trouvent à un endroit précis de mon
disque dur système (Source) que je veux sauvegarder simultanément sur des
supports différents, dans quatre répertoires de noms différents
: R1, R2, R3, R4.

R1 se trouve sur le disque dur du système en partition W:
R2 est sur une clé USB
R3 et R4 sont sur des disques durs USB.

Les mystères de l'informatique font que parfois (je devrais plutôt dire
souvent) les lettres des partitions changent et ne correspondent plus aux
chemins R1...R4 qui ont été donnés à l'utilitaire de sauvegarde (j'utilise
Cobian Backup 10).

Dans cas je ne sais pas faire autrement, avant de lancer le programme, que de
rétablir les bonnes lettres de partition avec le gestionnaire de disques de
XP.

Et ce que je veux obtenir, c'est retrouver R1, R2, R3, R4 où ils sont,
automatiquement, et faire mes sauvegardes, sans avoir à rétablir les bonnes
lettres de partition. Je précise encore que les destinations R1 à R4 portent
des noms distincts et uniques.

Merci



J'ai donné la réponse. De rien...
Avatar
fg
Le 16/03/2012 19:20, at a écrit :

J'ai donné la réponse. De rien...



Merci pour ton aide
fg
Avatar
Ascadix
Le 16/03/2012, a supposé :
Le 16/03/2012 17:50, Jean-Claude BELLAMY a écrit :
Le vendredi 16/03/2012 16:47:02, a écrit dans le message
<news:4f636077$0$18064$ ce qui suit :
Le 16/03/2012 16:36, a écrit :
Bonjour,

Sur XP, je souhaite disposer d'un batch qui me fournirait le chemin
complet d'un répertoire donné.
Etant peu doué en la matière, je fais appel aux experts !

Merci.

fg



Pour bien me faire comprendre, je connais le nom du répertoire, mais
pas la lettre de la partition qui l'accueille



Tu demandes là un batch extra-lucide ! ;-)

Il faut forcément une info supplémentaire.

Réfléchis une yocto-seconde : comment veux-tu déduire la lettre d'un
chemin à partir du seul chemin sans la lettre ?



à partir d'un nom de répertoire unique, peut-être

P.ex. j'ai DEUX dossiers "captures" sur mes disques D: et G:
("D:captures" et "G:captures")

Donc à partir du nom "captures", je ne peux absolument pas en déduire la
lettre de la partition, puisque ce peut être aussi bien "D:" que "G:", A
MOINS QUE d'autres infos soient fournies (nom d'un fichier spécifique
contenu dans un seul dossier, taille, ...)

Donc ton problème est :
- soit INSOLUBLE


tel que je le pose ...
- soit INCOMPLET


sans doute
- soit très mal posé !
sûrement !



Je vais essayer ...

Je veux sauvegarder des données qui se trouvent à un endroit précis de mon
disque dur système (Source) que je veux sauvegarder simultanément sur des
supports différents, dans quatre répertoires de noms différents
: R1, R2, R3, R4.

R1 se trouve sur le disque dur du système en partition W:
R2 est sur une clé USB
R3 et R4 sont sur des disques durs USB.

Les mystères de l'informatique font que parfois (je devrais plutôt dire
souvent) les lettres des partitions changent et ne correspondent plus aux
chemins R1...R4 qui ont été donnés à l'utilitaire de sauvegarde (j'utilise
Cobian Backup 10).

Dans cas je ne sais pas faire autrement, avant de lancer le programme, que de
rétablir les bonnes lettres de partition avec le gestionnaire de disques de
XP.

Et ce que je veux obtenir, c'est retrouver R1, R2, R3, R4 où ils sont,
automatiquement, et faire mes sauvegardes, sans avoir à rétablir les bonnes
lettres de partition. Je précise encore que les destinations R1 à R4 portent
des noms distincts et uniques.

Merci




Perso, j'utilise un truc dans ce genre dans qq batch:

------------
setlocal

set target
for %%l in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if
exist %%l:sata_01.tag set target=%%l

echo disque sur : [%target%:]
------------

- attention à la coupure de ligne : for -> target=%%l sur 1 ligne


Le "sata_01.tag" c'est un simple fichier vide collé à la racine du
disque (bon, là c'est mon DD sata qui se balade dans un tiroir SATA)
Dans la suite du batch, on utilise %target% comme lettre de lecteur.

Tu peux utiliser un nom de dossier à la place du fichier, ça marche
aussi.

--
@+
Ascadix
adresse @mail valide, mais ajoutez "sesame" dans l'objet pour que ça
arrive.
Avatar
Ascadix
Ascadix a exprimé avec précision :
Le 16/03/2012, a supposé :
Le 16/03/2012 17:50, Jean-Claude BELLAMY a écrit :
Le vendredi 16/03/2012 16:47:02, a écrit dans le message
<news:4f636077$0$18064$ ce qui suit :
Le 16/03/2012 16:36, a écrit :
Bonjour,

Sur XP, je souhaite disposer d'un batch qui me fournirait le chemin
complet d'un répertoire donné.
Etant peu doué en la matière, je fais appel aux experts !

Merci.

fg



Pour bien me faire comprendre, je connais le nom du répertoire, mais
pas la lettre de la partition qui l'accueille



Tu demandes là un batch extra-lucide ! ;-)

Il faut forcément une info supplémentaire.

Réfléchis une yocto-seconde : comment veux-tu déduire la lettre d'un
chemin à partir du seul chemin sans la lettre ?



à partir d'un nom de répertoire unique, peut-être

P.ex. j'ai DEUX dossiers "captures" sur mes disques D: et G:
("D:captures" et "G:captures")

Donc à partir du nom "captures", je ne peux absolument pas en déduire la
lettre de la partition, puisque ce peut être aussi bien "D:" que "G:", A
MOINS QUE d'autres infos soient fournies (nom d'un fichier spécifique
contenu dans un seul dossier, taille, ...)

Donc ton problème est :
- soit INSOLUBLE


tel que je le pose ...
- soit INCOMPLET


sans doute
- soit très mal posé !
sûrement !



Je vais essayer ...

Je veux sauvegarder des données qui se trouvent à un endroit précis de mon
disque dur système (Source) que je veux sauvegarder simultanément sur des
supports différents, dans quatre répertoires de noms différents
: R1, R2, R3, R4.

R1 se trouve sur le disque dur du système en partition W:
R2 est sur une clé USB
R3 et R4 sont sur des disques durs USB.

Les mystères de l'informatique font que parfois (je devrais plutôt dire
souvent) les lettres des partitions changent et ne correspondent plus aux
chemins R1...R4 qui ont été donnés à l'utilitaire de sauvegarde (j'utilise
Cobian Backup 10).

Dans cas je ne sais pas faire autrement, avant de lancer le programme, que
de rétablir les bonnes lettres de partition avec le gestionnaire de disques
de XP.

Et ce que je veux obtenir, c'est retrouver R1, R2, R3, R4 où ils sont,
automatiquement, et faire mes sauvegardes, sans avoir à rétablir les bonnes
lettres de partition. Je précise encore que les destinations R1 à R4
portent des noms distincts et uniques.

Merci




Perso, j'utilise un truc dans ce genre dans qq batch:

------------
setlocal

set target >
for %%l in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist
%%l:sata_01.tag set target=%%l

echo disque sur : [%target%:]
------------

- attention à la coupure de ligne : for -> target=%%l sur 1 ligne


Le "sata_01.tag" c'est un simple fichier vide collé à la racine du disque
(bon, là c'est mon DD sata qui se balade dans un tiroir SATA)
Dans la suite du batch, on utilise %target% comme lettre de lecteur.

Tu peux utiliser un nom de dossier à la place du fichier, ça marche aussi.



Euh ... bien sur, si ton "témoin" est présent sur plusieurs disques,
avec cette manip, c'est la lettre la + proche de Z qui gagne :-)

--
@+
Ascadix
adresse @mail valide, mais ajoutez "sesame" dans l'objet pour que ça
arrive.
Avatar
fg
Le 16/03/2012 22:22, Ascadix a écrit :
Le 16/03/2012, a supposé :

Perso, j'utilise un truc dans ce genre dans qq batch:

------------
setlocal

set target >
for %%l in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if
exist %%l:sata_01.tag set target=%%l

echo disque sur : [%target%:]
------------

- attention à la coupure de ligne : for -> target=%%l sur 1 ligne


Le "sata_01.tag" c'est un simple fichier vide collé à la racine du
disque (bon, là c'est mon DD sata qui se balade dans un tiroir SATA)
Dans la suite du batch, on utilise %target% comme lettre de lecteur.

Tu peux utiliser un nom de dossier à la place du fichier, ça marche aussi.



Avec une boucle, ça simplifie beaucoup.
Merci !
fg
1 2