script batch
Le
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
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
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
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
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
à partir d'un nom de répertoire unique, peut-être
tel que je le pose ...
sans doute
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...
Merci pour ton aide
fg
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.
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.
Avec une boucle, ça simplifie beaucoup.
Merci !
fg