2016-06-09 5 views
0

Ich möchte mehrere Webseiten herunterladen, indem ich eine curl-Anweisung in einer Schleife in einer Batch-Datei ablege.Laden Sie Webseiten mit curl in Batch-Datei herunter.

Die Webseiten enden in einer Zahl, die in einem Bereich von etwa 100 bis 200 liegen, und ich möchte jede Seite als HTML-Datei herunterladen.

Wenn ich Folgendes ausführen, friert das Programm/wirft und Fehler. Wie kann ich das zur Arbeit bringen?

Vielen Dank im Voraus!

@echo off 

echo @echo pages will begin downloading... > ListOfPages.txt 

SETLOCAL ENABLEDELAYEDEXPANSION 

For /L %%A IN (100,1,200) do ( 
    SET page="http://path/to/webpage/%%A" 
    SET destination="C:\path\to\file\sitenumber_%%A.html" 

    :: insert curl statements to new file 
    echo curl !page! -OutFile !destination! >> ListOfPages.txt 
) 


:: Loop through each line of new file and execute curl statement 
For /F %%G in (C:\path\to\file\ListOfPages.txt) do (

    WHAT GOES HERE??? 

) 
+0

Für die Art von Problemen, ich 'Echo' Curl ... '", überprüfen Sie, ob die Links in Ordnung sind. Dann "echo" zu einer neuen Datei und führe die neue Datei aus. Versuche nicht, es in einem Skript zu machen. Sie benötigen eine Pipeline von Checkpoints – lllllllllll

+0

Dies ist ein guter Vorschlag. Ich probiere es jetzt aus. – mrp

+0

@lllllllllll Sobald ich die curl-Anweisungen an separate Textdatei sende, wie führe ich dann diese curl-Befehle aus? ..Ich kann die Frage aktualisieren – mrp

Antwort

0

Die Antwort darauf ist, dass Sie nicht curl ausführen können (soweit ich getestet habe), jedoch können Sie die Powershell-Befehle in einer Bat-Datei verwenden.

Per @ lllllllllll Vorschlag, senden Sie die Liste der Websites in eine neue Datei, aber es sollte eine .bat-Datei, keine Textdatei sein. Und der Befehl, der verwendet werden soll, ist nicht curl, aber PowerShell.exe -Command Invoke-WebRequst:

@echo off 

echo @echo pages will begin downloading... > ListOfPages.bat 

SETLOCAL ENABLEDELAYEDEXPANSION 

For /L %%A IN (100,1,200) do ( 
    SET page="http://path/to/webpage/%%A" 
    SET destination="C:\path\to\file\sitenumber_%%A.html" 

    :: insert curl statements to new file 
    echo PowerShell.exe -Command Invoke-WebRequest !page! -OutFile !destination! >> ListOfPages.bat 
) 

dann in diesem Ordner auf die Powershell zurückgehen, wo die .bat Datei gespeichert wird, und auszuführen:

./ListOfPages.bat