Script de commande ( DOS ou W2K ) / Fichier & Variable ... - Programmation
Marsh Posté le 29-03-2001 à 00:25:31
Je dois pouvoir faire ca mais faut que j'ai jamais programmé en VB ...
Mes antécédants sont Pascal & C, il y a quelques années ...
EXPLICATION DU PB ;
Le but est de faire un sauvegarde "intelligente" d'un disque (en vue de back-up sur CD) mais en placant dans chaque repertoire racine, copié, un zip correspondant à son contenu, il y a un tri a faire suivant le nom des fichiers présents ...
Pour l'instant, j'ai l'arborescence en double et je crée le zip au bon endroit, en me servant de variables entrées par l'utilisateur pour connaitre les fichiers à enregistrer, les memes qui me servent à nommer le zip.
Variables :
- Nom du client / repertoire
- Date d'archive - Critere de tri sur le nom du fichier
L'incovenient de cette manip c'est qu'il y a une entrée par repertoire racine <=> ZIP / Entrée User.
Si j'arrive à récuperer la liste des repertoires automatiquement dans une/des variable(s), je peux faire sauter l'intervention Utilisateur, qui n'a pas que ça à faire que de la saisie fastidieuse
Vu que le nom d'un client correspond à un répertoire, j'espère pouvoir utiliser un script du genre :
DIR /B > liste.txt
more /E +n liste.txt
ou n = numero de ligne à partir de laquelle le listing est affiché
Si j'arrive à prendre les lignes les une après les autres,
je devrai y arriver mais
more /E +n liste.txt | set ZZZ=%1
=> le résultat du more ne s'enregistre pas dans ZZZ
Pour la date, cela fait une entrée par mois, bien moins contraignant ...
( C'est la deuxieme étape )
Je suis ouvert à toute remarque et/ou critique, pas trop à la fois qd meme
[edit]--Message édité par bruno31--[/edit]
Marsh Posté le 29-03-2001 à 01:50:54
Ca peut peut etre se faire avec un batch.
C'est un truc comme ca que tu cherches?
========================================
for %%v in (*.*) do call echo %%v% > nul
=========================================
ou tu remplace le echo qui suit call par la prodedure que tu veux lancer, laquelle peut etre un autre batch plus complexe qui teste si effectivement le fichier file en argument est a zipper...
Ca la lancera sur le chaque fichier du repertoire.
A+,
[edit]--Message édité par gilou--[/edit]
Marsh Posté le 29-03-2001 à 02:05:21
Au fait, tu as droit d'utiliser Perl? parce que ca c'est un langage de script qui tourne assez bien sous DOS, et qui est efficace.
A+,
Marsh Posté le 29-03-2001 à 12:25:50
j'ai pas perl !!
a quoi correspond le %%v
pourquoi un double %% ?
Marsh Posté le 29-03-2001 à 12:29:02
C'est la pratique usuelle en DOS/Batch pour indiquer une variable de type liste, mais je pense pas que ca soit obligatoire.
A+,
Marsh Posté le 29-03-2001 à 12:40:35
j'approfondirai ca Lundi, la je suis en congé
Merci je ferai remonter le topic si je galere
A+
Marsh Posté le 29-03-2001 à 22:13:07
>j'ai pas perl !!
Ca se downloade dans toute bonne cremerie internet...
Et ca marche tres bien sous DOS.
A+,
Marsh Posté le 28-03-2001 à 17:52:18
Bon, je vais essayer d'être clair.
J'ai un fichier (liste.txt) qui contient un mot par ligne.
Le but est de donner à une variable toto la valeur de la premiere ligne de ce fichier , lancer un prog avec cette variable comme argument (ca je sais faire ) puis idem avec toto=seconde ligne, etc ...
Je voulais me servir de la commande
more /E +n liste.txt
ou n = numero de ligne mais je n'arrive pas à affecter le résultat à la variable
Le tout avec l'interpreteur de commande de Win 9x ou 2K - plus de commandes sous 2K -
PS : Je sais qu'avec n'importe quel VRAI language de prog c'est easy (enfin pour vous) mais la soluce recherché est en interpreteur de commande !
---------------
http://www.hardfr.org/ [HardFr]