Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1688 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Script Batch téléchargement http

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script Batch téléchargement http

n°1932735
eric6779
Posté le 17-10-2009 à 15:21:13  profilanswer
 

Bonjour all,
 
 
quelqu'un pourrais me faire un petit script batch pour télécharger deux fichiers via http :
en vérifiant le nom,  
si le nom est identique alors on annule le téléchargement,
si le nom est différent (chiffre supérieur) alors on supprime l'ancien et on télécharge le fichier.
 
Les noms des fichiers sont noté monfichier-503-i386-CD-1.iso, monfichier-504-i386-CD-1.iso etc....
 
 
Merci d'avance.

mood
Publicité
Posté le 17-10-2009 à 15:21:13  profilanswer
 

n°1932780
eZula
Posté le 17-10-2009 à 19:37:04  profilanswer
 

Tu peux utiliser cURL -sfI

n°1932781
eric6779
Posté le 17-10-2009 à 19:41:58  profilanswer
 

sous windows ? :D

n°1932782
eZula
Posté le 17-10-2009 à 19:48:14  profilanswer
 
n°1932784
eric6779
Posté le 17-10-2009 à 20:31:08  profilanswer
 

anglais :s ok merci, je vais voir...

 


si quelqu'un à un script batch, je suis toujours preneur... moi et l'anglais font deux :D :(


Message édité par eric6779 le 17-10-2009 à 20:40:25
n°1932790
eZula
Posté le 17-10-2009 à 20:56:11  profilanswer
 

Code :
  1. >cURL -sfI http://www.google.fr/intl/fr_fr/images/logo.gif
  2. HTTP/1.1 200 OK
  3. Content-Type: image/gif
  4. Last-Modified: Wed, 07 Jun 2006 19:44:03 GMT
  5. Date: Thu, 15 Oct 2009 12:20:43 GMT
  6. Expires: Fri, 15 Oct 2010 12:20:43 GMT
  7. Server: gws
  8. Content-Length: 8866
  9. Cache-Control: public, max-age=31536000
  10. Age: 196376
  11. X-XSS-Protection: 0
  12. >cURL -sfI http://www.google.fr/intl/fr_fr/images/logo.gif>NUL
  13. & IF NOT ERRORLEVEL 1 cURL -o logo.gif http://www.google.fr/intl/fr_fr/images/logo.gif
  14.   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
  15.                                  Dload  Upload   Total   Spent    Left  Speed
  16. 100  8866  100  8866    0     0  28416      0 --:--:-- --:--:-- --:--:-- 70928
  17. >cURL -sfI http://www.google.fr/intl/fr_fr/images/loga.gif>NUL
  18. & IF NOT ERRORLEVEL 1 cURL -o logo.gif http://www.google.fr/intl/fr_fr/images/logo.gif
  19. >

n°1932791
eric6779
Posté le 17-10-2009 à 21:11:00  profilanswer
 

oui facile.... j'ai tout compris :D
 
logo.gif > facile mais quand le nom est fichier-503-i386 et qu'il est modifié toutes les semaines ?

n°1932792
eZula
Posté le 17-10-2009 à 21:15:06  profilanswer
 

l'hypothèse c'est que dans ton système de fichiers tu as "monfichier-503-i386-CD-1.iso", et seulement si "monfichier-504-i386-CD-1.iso" existe sur le serveur alors tu le télécharges, après avoir supprimé "monfichier-503-i386-CD-1.iso", et ainsi de suite ?

n°1932795
eric6779
Posté le 17-10-2009 à 22:02:03  profilanswer
 

tout à fait...

n°1932797
eZula
Posté le 17-10-2009 à 22:13:11  profilanswer
 

Vaguement testé mais ça pourrait faire l'affaire
 

Code :
  1. FOR /F "TOKENS=2,3 DELIMS=-" %%A IN ('DIR /B monfichier-???-i386-CD-1.iso') DO SET /A Numero=%%A +1
  2. cURL -sfI URL/monfichier-%Numero%-i386-CD-1.iso>NUL &IF NOT ERRORLEVEL 1 (
  3. DEL monfichier-???-i386-CD-1.iso
  4. cURL -o monfichier-%Numero%-i386-CD-1.iso URL/monfichier-%Numero%-i386-CD-1.iso
  5. )


 
je suppose dans cette proposition, que le batch se trouve dans le même répertoire que ton unique fichier initial "monfichier-(n)-i386-CD-1.iso", et qu'"URL" représente le répertoire racine de ton serveur, où se trouve éventuellement "monfichier-(n+1)-i386-CD-1.iso"

mood
Publicité
Posté le 17-10-2009 à 22:13:11  profilanswer
 

n°1932798
eric6779
Posté le 17-10-2009 à 22:15:40  profilanswer
 

l'url du fichier est externe (http)....

n°1932800
eZula
Posté le 17-10-2009 à 22:29:10  profilanswer
 

je croyais qu'on s'était compris pourtant http://forum.hardware.fr/hfr/Progr [...] m#t1932792
ta réponse à à 22:02:03 m'a laissé comprendre que tu comparais la version d'un fichier sur ton ordi avec la version d'un fichier sur le serveur (http), ceci dit par rapport à l'énoncé ça sème un peu le doute

n°1932801
eric6779
Posté le 17-10-2009 à 22:34:19  profilanswer
 

je reprend car ta réponse de 22h13 m'a mis un doute ^^
 
Actuellement j'ai le fichier stocké sur le DD que je met à jour manuellement pour le moment à partir d'un lien http donc avant de faire la MAJ, je le supprime puis je télécharge.... C'est mieux ?

n°1932802
eZula
Posté le 17-10-2009 à 22:44:43  profilanswer
 

ben si c'est ça la commande précédente devrait fonctionner. Explications :
 

Code :
  1. FOR /F "TOKENS=2,3 DELIMS=-" %%A IN ('DIR /B monfichier-???-i386-CD-1.iso') DO SET /A Numero=%%A +1


 
admettons que dans le répertoire courant tu as un seul fichier "monfichier-???-i386-CD-1.iso", par exemple monfichier-503-i386-CD-1.iso : la commande ci-dessus affecte à la variable Numero la valeur 503 augmentée de 1, càd 504
 

Code :
  1. cURL -sfI URL/monfichier-%Numero%-i386-CD-1.iso>NUL &IF NOT ERRORLEVEL 1


 
==> cURL teste maintenant, sur le site web, si le fichier URL/monfichier-%Numero%-i386-CD-1.iso, càd monfichier-504-i386-CD-1.iso existe. Si c'est bien le cas :
 

Code :
  1. DEL monfichier-???-i386-CD-1.iso


 
==> le fichier monfichier-503-i386-CD-1.iso dans le répertoire courant est supprimé (d'ailleurs attention, écrit comme ça, tout fichier de la forme monfichier-???-i386-CD-1.iso sera supprimé)
 

Code :
  1. cURL -o monfichier-%Numero%-i386-CD-1.iso URL/monfichier-%Numero%-i386-CD-1.iso


 
==> le fichier URL/monfichier-504-i386-CD-1.iso est téléchargé
 
"URL" est bien entendu une adresse de type Http, par exemple : http://mon.site.web/monfichier-504-i386-CD-1.iso

n°1932804
eric6779
Posté le 17-10-2009 à 22:48:16  profilanswer
 

oki merci, je te dirais si cela fonctionne ;)
 
Petite question : je dois l'enregistrer sous quel format ? .bat ?  
 
car il sera exécuté via les tâches planifiées....

n°1932805
eZula
Posté le 17-10-2009 à 22:54:17  profilanswer
 

oui, .bat et il te faut cURL soit dans un des chemins du Path, soit dans le même répertoire. J'insiste sur les conditions, dans ce répertoire, il faut également le dernier fichier "monfichier-???-i386-CD-1.iso" car c'est à partir de lui que la recherche de la version suivante va se faire. Si la recherche sur le serveur est positive, le précédent sur ton dd sera définitivement supprimé, sans retour arrière possible (si tu ne le souhaites pas tu peux utilser la commande MOVE au lieu de DEL, histoire de le déplacer)

n°1933616
eric6779
Posté le 20-10-2009 à 12:02:18  profilanswer
 

impeccable ;)
 
est t'il possible de vérifier par la taille ? ou le hash md5 ?

n°1933627
eZula
Posté le 20-10-2009 à 12:27:43  profilanswer
 

MD5 je ne sais pas, pour la taille voici une possibilité
 

Code :
  1. >cURL -sfI http://www.alt-shift-return.org/Info/Fichiers/GenProc.zip
  2. HTTP/1.1 200 OK
  3. Date: Tue, 20 Oct 2009 10:14:13 GMT
  4. Server: Apache
  5. Last-Modified: Thu, 15 Oct 2009 21:15:58 GMT
  6. ETag: "a7c43e8-1df1c2-4ad7910e"
  7. Accept-Ranges: bytes
  8. Content-Length: 1962434
  9. Content-Type: application/zip


 

Code :
  1. >cURL -sfI http://www.alt-shift-return.org/Info/Fichiers/GenProc.zip | Findstr "Content-Length:"
  2. Content-Length: 1962434

n°1933960
eric6779
Posté le 20-10-2009 à 20:34:03  profilanswer
 

Je n'obtiens pas la taille du fichier .iso en faisant Curl -sfI....

n°1933962
eZula
Posté le 20-10-2009 à 20:37:20  profilanswer
 

Ben ça te donne quoi  
 

Code :
  1. cURL -sfI URL/ton_fichier_iso

 
 
?

n°1933964
eric6779
Posté le 20-10-2009 à 20:46:09  profilanswer
 

eZula a écrit :

Ben ça te donne quoi  
 

Code :
  1. cURL -sfI URL/ton_fichier_iso

 
 
?


 

Code :
  1. HTTP/1.1 302 Found
  2. Date: Tue, 20 Oct 2009 18:44:59 GMT
  3. Server: Apache/2.2.9 (Unix)
  4. Content-Type: text/html; charset=iso-8859-1


 

n°1933973
eZula
Posté le 20-10-2009 à 21:03:47  profilanswer
 

Apparemment l'info n'est pas toujours transmise en amont et la seule solution serait de voir si tu peux faire qquechose au niveau du serveur http://curl.haxx.se/mail/archive-2002-08/0059.html en tout cas avec cURL.
Bon, le mail est un peu ancien, mais là j'avoue que ça dépasse mes compétences.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Script Batch téléchargement http

 

Sujets relatifs
Script VB pour ré-installation d'imprimantes [aide svp]JSF/JSP/Servlet : Impression sur requête HTTP
Programmation script shell ksh unixPrendre la valeur après un ping
aide script PHP/SQLITE[Javascript] Aide pour adapter un script - [Résolu]
Pb de finalisation d un batch de renomage massifmodification script php/mysql
réference à des cellules script lotus123Problème dans la rédaction d'un petit script
Plus de sujets relatifs à : Script Batch téléchargement http


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR