Das Linuxskript verwendet wget, um alle Dateien herunterzuladen. Unter Windows wird wget.exe verwendet, eine Portierung desselben Tools nach Windows. Die Logdatei wird auch von wget.exe geschrieben. Dann muss man eigentlich nur die Parameter vergleichen, die unter Windows und Linux verwendet werden.
Unter
Windows werden die Parameter in der Datei DownloadUpdates.cmd definiert.
Datei DownloadUpdates.cmd, Version 9.4, Zeile 15:- Code: Select all
set DOWNLOAD_LOGFILE=..\log\download.log
Datei DownloadUpdates.cmd, Version 9.4, Zeile 206 - 213:- Code: Select all
if exist custom\SetAria2EnvVars.cmd (call custom\SetAria2EnvVars.cmd) else (
set DLDR_PATH=..\bin\wget.exe
set DLDR_COPT=-N
set DLDR_LOPT=-a %DOWNLOAD_LOGFILE%
set DLDR_IOPT=-i
set DLDR_POPT=-P
set DLDR_NVOPT=-nv
)
Unter
Linux wird eine Shellfunktion doWget() definiert.
Datei commonparts.inc, Version 9.4, Zeile 189 - 194:- Code: Select all
doWget()
{
echo "wget -nv -N --timeout=120 $*" | tee -a ../temp/wget.$mydate
wget -nv -N --timeout=120 $* 2>>../temp/wget.$mydate
return $?
}
Der Aufruf von wget wird also in eine Datei temp/wget.$mydate geschrieben. Auch die Terminalausgabe von wget wird in diese Datei umgeleitet. Mit der Option "--no-verbose" (-nv) produziert wget aber kaum Ausgaben.
Man kann hier übrigens eine Eigenheit von wget erkennen: wget verwendet die Standardausgabe normalerweise überhaupt nicht; alle Terminalausgaben werden in die Fehlerausgabe geschrieben. Deshalb ist die Umlenkung 2>>../temp/wget.$mydate hier richtig. Die Idee dabei ist wohl, dass man statt dessen die heruntergeladenen Dateien mit --output-document=- in die Standardausgabe schreiben kann.
Um eine Liste der heruntergeladenen Dateien wie unter Windows zu bekommen, muss man den Parameter -a (--append-output) ergänzen:
- Code: Select all
doWget()
{
echo "wget -nv -N --timeout=120 $*" | tee -a ../temp/wget.$mydate
wget -nv -N --timeout=120 --append-output=../temp/wget.$mydate $* 2>>../temp/wget.$mydate
return $?
}
Viele Grüße,
Hartmut