Batch downloader

chasseur1044 Messages postés 67 Statut Membre -  
 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

Résumé de la discussion

Télécharger en batch 100 URL à partir d’un fichier texte sans intervention utilisateur ni ouverture d’onglets constitue la problématique centrale et pose des défis de nommage et de destination. Des propositions utilisent un script batch avec MSXML2.XMLHTTP et ADODB.Stream, ou le recours à Free Download Manager configuré pour lire les URL depuis un fichier texte. Des discussions soulèvent que les liens HTTPS compliquent le téléchargement et que le nommage des fichiers peut nécessiter des noms issus d’un fichier distinct ou une association URL‑nom dans deux fichiers. En cas de besoin, d’autres solutions suggérées incluent l’écriture d’un script VBScript ou l’utilisation d’outils tiers pour agréger URLs et noms et éviter les téléchargements uniques par URL.

Généré automatiquement par IA
sur la base des meilleures réponses
OeufsAuRiz Messages postés 22 Statut Membre 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 22 Statut Membre 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 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
 
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 67 Statut Membre 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 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
 
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 67 Statut Membre 4
 
ça oui je l'avais eu sur une autre question.
Mais comment on le met dans ce code ?
0
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
 
for /f "delims=" %%a in (liste-url.txt) do (
le code ici
)
0
chasseur1044 Messages postés 67 Statut Membre 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