[Batch] Dos Scruter, Copier, Renomer, transferer

Dos Scruter, Copier, Renomer, transferer [Batch] - Shell/Batch - Programmation

Marsh Posté le 25-06-2003 à 10:34:36    

Salut @ tous
 
Donc vala je doit faire un batch qui devrai  
1) scruter un repertoire toute les 5 minutes (par exemple) et vérifier si un fichier y est.
2) Copier le fichier dans un repertoire .\sav\
3) le renomer dans le .\sav\ avec un numero de quantieme en debut
4) transferer l'original via FTP sur une machine du reseau
5) effacer l'original
 
En gros la partie 2),4), et 5) sont tres simple, il me manque des billes pour la recherche du quantieme... le renomage devrai etre assez simple et il me manque des billes pour le scrutage de repertoire... a savoir que le nom de fichier est normalement fixe...
Vala merci  ;)


---------------
-=Voili Voilou=-
Reply

Marsh Posté le 25-06-2003 à 10:34:36   

Reply

Marsh Posté le 25-06-2003 à 10:51:16    

1) pour scruter ton répertoire toutes les 5 minutes, je ne vois que le planificateur de tâches.
 
3) renommer le fichier :
tu te crée un fichier nombre.bat contenant :
set nombre=1
 
dans ton batch, si le fichier est trouvé :
nombre.bat     crée la variable nombre
set /a nombre=nombre+1  incrémente nombre
echo set nombre=%nombre%>nombre.bat
ren tonfichier %nombre%tonfichier
 
A+

Reply

Marsh Posté le 25-06-2003 à 11:01:54    

pour le 1) c ce que je pensai faire :)
par contre le 3) c pas vraiment ce qui m'est demander...
ce que je voudrai c le quantieme du jour...
J'ai rechercher une fonction qui aurai pu faire ca mais ca n'dexiste po... a moin de faire un morceau de programme...
Une idée?


---------------
-=Voili Voilou=-
Reply

Marsh Posté le 25-06-2003 à 11:28:18    

précise un peu ton besoin :  
Quantième, c'est 25 pour le 25 juin 2003
ou c'est plus compliqué, du style 2003-06-25 ?
 
A+
 
si c'est pour avoir le numéro du jour, tu crée une variable d'environnement (par exemple quant) ainsi :
set quant=%date:~0,2%
ensuite :
ren fichier %quant%fichier
 
A+


Message édité par JPA le 25-06-2003 à 11:40:46
Reply

Marsh Posté le 25-06-2003 à 12:33:06    

moué en fait j'v partir sur ta premier idée du nombre.bat car personne est capable de me dire ce qu'il veulent vraiment :)
 
par contre si je cré un fichier nombre.bat et que je l'appelle via le batch principal... (procedure que je n'ai jamais testé auparavent) mon batch principal appelle le nombre.bat et ne continue plus son execution :/
donc le  
set /a nombre = nombre+1
echo set nombre=%nombre% = nombre.bat  
etc.... ne s'execute po :/
astuces?


---------------
-=Voili Voilou=-
Reply

Marsh Posté le 25-06-2003 à 13:36:46    

j'avais oublié le call... désolé
call nombre.bat est la bonne syntaxe.
 
A+

Reply

Marsh Posté le 25-06-2003 à 15:29:35    

bon g presque terminer tout le prog... il me reste une connerie...
En fait quand je fé un  
echo set nombre=%nombre% >> nombre.bat
 
et que je renome mon fichier lors de l'execution du script
ren fichier.txt fichier_%numero%.txt
il me lance un message d'erreur car le numero est suivi d'un espace :/
 
si j'excri
echo set nombre=%nombre%>>nombre.bat
ca marche pas il interprete pas le %nombre%>>nombre.bat :/  :??:


---------------
-=Voili Voilou=-
Reply

Marsh Posté le 25-06-2003 à 15:49:09    

Dans ce cas :
set nombre=%nombre:~0,-1%
enlève le dernier caractère de la variable nombre
ce qui devrait résoudre ton pb
 
syntaxe :
set nombre=%nombre:~0,-x%
enlève les x derniers caractères de la variable nombre
 
A+
 
edit : pourquoi tu fais :
echo set nombre=%nombre%>>nombre.bat  
ton fichier ne vas jamais être remis à 0 !!!
la syntaxe est :  
echo set nombre=%nombre%>nombre.bat


Message édité par JPA le 25-06-2003 à 15:50:47
Reply

Marsh Posté le 25-06-2003 à 15:52:06    

une erreur de mon post :) c bien > et pas >> qui ya dans mon script ;)
bon je test :)


---------------
-=Voili Voilou=-
Reply

Marsh Posté le 25-06-2003 à 16:21:58    

c bon ca fonctionne merci JPA :)


---------------
-=Voili Voilou=-
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed