Batch downloader

chasseur1044 Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   -  
 chasseur1044 -
Bonsoir,

Je vois sur une question que cette solution a été apportée sur Comment télécharger à partir d'un batch.
Mon problème est le suivant :
J'ai 100 URL à télécharger, est il possible de faire ça en stockant les URL dans un fichier txt ?

J'avais posé la question, mais la solution ne me convenait pas car pour chaque URL un onglet du navigateur s'ouvre et une confirmation est demandée.

Voici le code sur lequel je voudrais partir.

La toute première question que je poserai est :
Pour commencer comment mettre mon propre lien à télécharger ?
j'ai modifier l'url donnée mais ça m'a juste créé une icône sur le bureau avec rien...

Comment définir le répertoire de destination ?
Entre autre ici je voudrai que ça se télécharge dans le dossier ou se situe le .bat

Comment stocker les URL dans un fichier .txt pour ne pas avoir à modifier le code à chaque fois ?

J'espère avoir été clair et pas trop pompeux.
Merci par avance.

Le code de départ est le suivant.

@echo off
call:download "http://www.google.fr/images/srpr/logo3w.png" "%~dp0logo3w.png"
exit /b

:download
(echo src = "%~1"
echo Set v1 = CreateObject ("MSXML2.XMLHTTP"^)
echo Set v2 = CreateObject ("ADODB.Stream"^)
echo v1.open "GET", src, false
echo v1.send (^)
echo v2.open
echo v2.Type = 1
echo v2.Write v1.ResponseBody
echo v2.SaveToFile "%~2") >"%~dpn0.vbs"
cscript "%~dpn0.vbs"
del "%~dpn0.vbs" >nul
goto:eof
A voir également:

2 réponses

OeufsAuRiz Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   1
 
Au pire, je connais un logiciel "Free Download Manager" qui pourrait te permettre de faire ça avec le fichier configuré comme cela :
"URL1
URL2
..."

Tu trouveras facilement l'option pour télécharger à partir du fichier texte.

Si tu trouves pas cette option, je te la détaillerais alors.

Ca ne résout pas ton problème mais ça peut être une alternative en attendant une solution pour ton fichier batch.
1
OeufsAuRiz Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   1
 
Et pour le batch, je connais wget sur linux qui est excellent en ligne de commande et il existe son équivalent Windows.

Passe une bonne soirée.
0
chasseur1044
 
Salut, désolé je vois seulement ta réponse :/
Merci, je vais regarder ça
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
le répertoire de destination dépend de la configuration du navigateur, donc avec Firefox, par ex. il faudrait aller modifier prefs.js, un peu lourd, non ?
0
chasseur1044 Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   4
 
Salut dubcek.

Toujours toi qui viens aider ^^
Lourd, je ne sais pas, je ne connais pas du tout.
Mais si je partage le programme avec 10 personnes, que à chaque utilisation elles doivent modifier puis remettre comme avant...
Mieux vaut s'embêter une fois sur le script non ?

Et concernant la modification pour obtenir le bon lien ?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
les URLs dans un fichier ?
on peut faire une boucle for
for /f "delims=" %%a in (liste-url.txt) do (
la variable %%a contient l'url
)
0
chasseur1044 Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   4
 
ça oui je l'avais eu sur une autre question.
Mais comment on le met dans ce code ?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
for /f "delims=" %%a in (liste-url.txt) do (
le code ici
)
0
chasseur1044 Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   4
 
Donc si je fais

for /f "delims=" %%a in (liste-url.txt) do (

@echo off
call:download "http://www.google.fr/images/srpr/logo3w.png" "%~dp0logo3w.png"
exit /b

:download
(echo src = "%~1"
echo Set v1 = CreateObject ("MSXML2.XMLHTTP"^)
echo Set v2 = CreateObject ("ADODB.Stream"^)
echo v1.open "GET", src, false
echo v1.send (^)
echo v2.open
echo v2.Type = 1
echo v2.Write v1.ResponseBody
echo v2.SaveToFile "%~2") >"%~dpn0.vbs"
cscript "%~dpn0.vbs"
del "%~dpn0.vbs" >nul
goto:eof
)

tu penses que ça fonctionne ?
0