Seite 1 von 2

LibreOffice Download Script - wer kann helfen

Verfasst: 27.03.2020, 13:38
von Holgi
Hallo zusammen. :)
In dem Beitrag
haben Ben und Nemo_G es geschafft, ein Script zu erstellen, wie man die aktuellen MSRT-Dateien (Malicious Software Removal Tool) herunterladen kann, obwohl diese jeden Monat einen anderen Namen haben (fortlaufende Numerieung).
Ich habe ein Script erstellt, welches mir aus dem Download der LibreOffice X86 *.msi Datei ein minimales portables LibreOffice "zaubert".
Normalerweise ist ein installiertes LibreOffice so um die 600MB groß; meines hingegen nur noch 275MB durch entfernen aller nicht zur Anwendung notwendigen Dateien (Sprachdateien etc.).
Das Ganze funktioniert fast automatisch. "Fast" deshalb, weil LibreOffice ebenso mit jedem Update einen neuen Namen bekommt (forlaufende Nummerierung) und es so nicht - wie z.B. bei Firefox oder Thunderbird- möglich ist, mit einem speziellen Link auf die gerade aktuelle Datei zu verweisen.
Bei Firefox wäre es
Insofern muss ich immer zunächst händisch das aktuelle OpenOffice Paket (MSI-Installer) herunterladen, umbenennen und kann dann erst mein Script darauf loslassen.
Könnte jemand das Script für die MSRT-Downloads so anpassen, dass es für ein aktuelles LibreOffice (vorzugsweise X86; alternativ X64) tauglich ist? :dankeschoen:
der aktuelle Download Link wäre:
Gerne stelle ich auch mein Mini-LibreOffice Script zur Verfügung, falls jemand Bedarf anmeldet.

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 28.03.2020, 13:10
von Holgi
ich habe zwar noch keine Lösung zu meinem eigentlichen Problem erhalten (batch download LibreOffice), aber auf der Suche danach bin ich auf etwas anderes Interessantes gestoßen, was ich gerne mit euch teilen möchte:

LibreOffice ermöglicht die Batch Konvertierung von Dokumenten im Headless Modus. D.h. LibreOffice muss dazu nicht mit seiner Oberfläche gestartet werden.
Es kann wohl so ziemlich alles, was LibreOffice verarbeiten kann (also Starten und Speichern) hin- und herkonvertiert werden.
Möchte man also *.odt Dateien eines Ordners in einem Rutsch in PDF Dokumente konvertiert haben, so ist dies Ruckzuck erledigt. Man muss also auch nicht extra in Kaufsoftware investieren.
Hier mal ein Beispiel für eine Batch-Datei (ich habe *.cmd als Endung genommen:

Code: Alles auswählen

for %%f in (*.odt) do (
    start /wait "" "C:\Users\DARTH VADER\Downloads\LibreOffice\program\swriter.exe" --headless --convert-to pdf --outdir "C:\PDF" "%%f"
)


Diese Beispiel würde alle odt-Dateien des Ordners, wo sich das Batch befindet in PDFs umwandeln und im Ordner C:\PDF abspeichern.
Wenn man kein Batch benutzt, sondern in einer Kommandozeile ausführt, dann die %%f in %f abändern.
Probiert es mal aus. Funzt super und die PDFs sind auch noch um den Faktor 3 kleiner.
Vlt. hat ja auch doch noch jemand eine Idee zum LibreOffice Download per Batch?

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 28.03.2020, 16:30
von Holgi
auf der Suche nach einer Lösung bin ich auf ein Script für Linux gestoßen. Vlt. könnte man das auf Windows umschreiben (mit "findstr" ?)

Code: Alles auswählen

#!/bin/bash
#
# Download latest stable LibreOffice for Windows x86
#

urla=$(curl -s "https://www.libreoffice.org/download/download/" \
  | grep "option.*type=win-x86\&" | head -n 2 | cut -d '"' -f 2 | tail -n 1)

urlb=$(curl -s "$urla" | grep "\.msi" | grep -v "torrent" | tail -n 1 | cut -d '"' -f 6)

urlc=$(curl -s "$urlb" | grep "Your download" | cut -d "'" -f 2)

if [ "$urlc" = "" ]; then
  echo >&2 "Could not extract download URL"
  exit 1
fi

wget "$urlc"

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 28.03.2020, 19:11
von DK2000
So auf die Schnelle in der Powershell (geht bestimmt noch besser, z.B. in einer *.ps1 verpackt)

Code: Alles auswählen

$Inhalt = Invoke-WebRequest -Uri "https://download.documentfoundation.org/libreoffice/stable"
$Versionen = ($Inhalt.Links | Where-Object { $_.href -match "(\d+(\.\d+){1,3})" }).href -replace "/", ""
$Aktuell = $Versionen | Sort-Object -Descending | Select-Object -First 1
$Download = "https://download.documentfoundation.org/libreoffice/stable/$Aktuell/win/x86/LibreOffice_"+$AKtuell+"_Win_x86.msi"
Start-BitsTransfer -Source $Download -Destination D:\Downloads\
Aber eventuell bekommt man das auch so wie mit dem Chrom Updater hin. LibreOffice hat da ja auch so ein Updater integriert. Weiß bloß gerade nicht, was der da genau mit welcher URL abfragt.

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 28.03.2020, 20:01
von Holgi
Danke DK2000! :dankeschoen:
In einer Powershell hat es jetzt schon mal funktioniert, (nachdem ich das Zielverzeichnis angepasst hatte).
Jetzt muss ich nur mal sehen, wie ich das in einem "normalen" Batch Script (*.bat bzw. *cmd) integriert bekomme.
Wahrscheinlich irgendwie durch Aufruf einer Powershell.
Deine Zeilen einfach mit der Endung .ps1 abspeichern und mit Powershell aufrufen funktionierte erst mal nicht.
Wenn du da noch mal etwas zu schreiben könntest??
Vielen, vielen Dank!!!

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 28.03.2020, 21:46
von Ben
Hier die Zeilen von DK2000 für die Powershell als Einzeiler für ein cmd Script.

Code: Alles auswählen

powershell -noprofile "$Inhalt = Invoke-WebRequest -Uri "https://download.documentfoundation.org/libreoffice/stable""; "$Versionen = ($Inhalt.Links | Where-Object { $_.href -match '(\d+(\.\d+){1,3})' }).href -replace '/', ''"; "$Aktuell = $Versionen | Sort-Object -Descending | Select-Object -First 1"; $Download = 'https://download.documentfoundation.org/libreoffice/stable/'+$AKtuell+'/win/x86/LibreOffice_'+$AKtuell+'_Win_x86.msi'; Start-BitsTransfer -Source $Download -Destination D:\Downloads\

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 29.03.2020, 12:13
von Holgi
Danke Ben!
Läuft leider nicht.
Das Ps1- Script startet, steigt aber gleich wieder aus.
Kann es was mit den einfachen bzw. doppelten Anführungszeichen zu tun haben (´bzw. ")?

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 29.03.2020, 12:22
von Holgi
hier mal die Fehlermeldungen, die ich aber nur sehe, wenn ich es nicht als Script, sondern manuell in der Powershell laufen lassen.
1.
= : Die Benennung "=" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren
Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und
wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:2
+ = Invoke-WebRequest -Uri https://download.documentfoundation.org/li ...
+ ~
+ CategoryInfo : ObjectNotFound: (=:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
2.
Start-BitsTransfer : HTTP-Status 404: Die angeforderte URL ist auf diesem Server nicht vorhanden.
In Zeile:1 Zeichen:436
+ ... n_x86.msi'; Start-BitsTransfer -Source $Download -Destination C:\PDF\ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Start-BitsTransfer], Exception
+ FullyQualifiedErrorId : StartBitsTransferCOMException,Microsoft.BackgroundIntelligentTransfer.Management.NewBits
TransferCommand

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 29.03.2020, 12:51
von Ben
Hallo Holgi
Es sollte aber so funktionieren wie ich es geschrieben hatte. Da es bei mir eben funktioniert. :?
Habe jetzt mal das ganze als CMD Datei angefügt. Hoffe das funktioniert. Habe dabei den Download Destination auf "$env:userprofile\downloads" gesetzt. Also den Download Ordner des User Profils.
Libre.JPG

Re: LibreOffice Download Script - wer kann helfen [gelöst]

Verfasst: 29.03.2020, 13:02
von Holgi
Danke Ben! Vielen Dank!
Es funktioniert.
Das die Befehlsfolge zuvor nicht funktioniert ist ja eigenartig. Ist ja der gleiche Inhalt (abgesehen vom Download Ordner).
Ich kann mir nur vorstellen, dass es mit einer Kodierung (UTF, OEM 852...) oder was auch immer zusammenhängt.
Hatte es auch noch mal mit Notepad++ versucht, um hier Kodierungfehler auszuschließen, aber hatte da auch kein Glück.
Ihr habt mir alle sehr geholfen. Danke auch noch an DK2000 :dankeschoen:
und bleibt gesund.
Gruß
Holgi

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 29.03.2020, 13:45
von DK2000
Habe das Ganze noch einmal etwas verkürzt:

Code: Alles auswählen

$latest=((iwr -uri "https://download.documentfoundation.org/libreoffice/stable").links|?{$_.href -match "(\d+(\.\d+){1,3})"}).href -replace "/", ""|sort -descending|select -first 1;Start-BitsTransfer -Source "https://download.documentfoundation.org/libreoffice/stable/$latest/win/x86/LibreOffice_$($latest)_Win_x86.msi" -Destination $env:userprofile\downloads
Das funktioniert zwar jetzt als Einzeiler in der Powershell direkt, aber mit powershell -noprofile ... in der Eingabeaufforderung lässt sich das bei mir nicht ausführen. Da ist jetzt irgendwo ein Fehler drin. Mh? Das habe ich da so noch nicht ganz verstanden, Powershell in der Eingabeaufforderung auszuführen.

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 29.03.2020, 14:02
von Ben
Das funktioniert jetzt DK2000.

Code: Alles auswählen

powershell -noprofile "$latest=((iwr -uri "https://download.documentfoundation.org/libreoffice/stable").links|?{$_.href -match '(\d+(\.\d+){1,3})'}).href -replace '/', ''|sort -descending|select -first 1";Start-BitsTransfer -Source "https://download.documentfoundation.org/libreoffice/stable/$latest/win/x86/LibreOffice_$($latest)_Win_x86.msi" -Destination $env:userprofile\downloads
Habe nur ein Anführungszeichen vor "$latest" und vor dem ";" gesetzt. Und die Anführungszeichen "(\d+(\.\d+){1,3})" gegen Halbe Anführungszeichen ' getauscht. Auch die bei -replace '/', '' sind jetzt halbe Anführungszeichen.

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 29.03.2020, 14:08
von DK2000
Danke für die Erklärung. Ja, da komme ich noch nicht so ganz klar, wann " und wann ' oder wann beides. Aber da komme ich auch noch dahinter. Dachte mir schon, das es irgendwie daran liegt.

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 29.03.2020, 16:19
von Holgi
Ben und DK2000:
ihr seid ja echt ein super Team!!!

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 15.04.2020, 16:22
von Holgi
die Powershell-Zeile

Code: Alles auswählen

powershell -noprofile "$latest=((iwr -uri "https://download.documentfoundation.org/libreoffice/stable").links|?{$_.href -match '(\d+(\.\d+){1,3})'}).href -replace '/', ''|sort -descending|select -first 1";Start-BitsTransfer -Source "https://download.documentfoundation.org/libreoffice/stable/$latest/win/x86/LibreOffice_$($latest)_Win_x86.msi"
funktionierte bislang auf etlichen Rechnern problemlos.
Heute hatte ich einen PC vor mir, da war wohl noch nie der Internet Explorer benutzt worden.
Das Script gab einen FehlerCode mit dem Inhalt
der antwortinhalt kann nicht analysiert werden da das internet explorer-modul nicht verfügbar ist
aus.
Durch Internetrecherche bin ich drauf gekommen, dass ein " -UseBasicParsing" Parameter hilft, diesen Fehler wegzubekommen.
Quelle:
https://stackoverflow.com/questions/380 ... gine-is-no
Wo aber müßte in dem Einzeiler Parameter gesetzt werden?

Code: Alles auswählen

powershell -noprofile "$latest=((iwr -uri  -UseBasicParsing "https://download.documentfoundation.org/libreoffice/stable").links|?{$_.href -match '(\d+(\.\d+){1,3})'}).href -replace '/', ''|sort -descending|select -first 1";Start-BitsTransfer -Source "https://download.documentfoundation.org/libreoffice/stable/$latest/win/x86/LibreOffice_$($latest)_Win_x86.msi"
hat schon mal nicht funktioniert.
Weiß jemand, wie der PS-Einzeiler zu ändern ist (mit -UseBasicParsing)?

Ich habe mir im Augenblick mit folgendem Eintrag in meiner Batch-Datei beholfen:
powershell -noprofile New-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Internet Explorer\Main' -Name DisableFirstRunCustomize -Value 2 -PropertyType DWORD -Force
Dieser Registry Eintrag behebt das Problem ebenfalls. Würde aber auch gerne das mit dem Powershell Einzeiler wissen.
:dankeschoen: