LibreOffice Download Script - wer kann helfen

Antworten
Benutzeravatar
Holgi
Spezialist
Spezialist
Beiträge: 173
Registriert: 12.05.2018, 12:33

LibreOffice Download Script - wer kann helfen

Beitrag von Holgi » 27.03.2020, 13:38

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.

Tante Google

LibreOffice Download Script - wer kann helfen

Beitrag von Tante Google » 27.03.2020, 13:38


Benutzeravatar
Holgi
Spezialist
Spezialist
Beiträge: 173
Registriert: 12.05.2018, 12:33

Re: LibreOffice Download Script - wer kann helfen

Beitrag von Holgi » 28.03.2020, 13:10

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?

Benutzeravatar
Holgi
Spezialist
Spezialist
Beiträge: 173
Registriert: 12.05.2018, 12:33

Re: LibreOffice Download Script - wer kann helfen

Beitrag von Holgi » 28.03.2020, 16:30

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"

Benutzeravatar
DK2000
Elite
Elite
Beiträge: 2660
Registriert: 03.04.2018, 00:07
Geschlecht:

Re: LibreOffice Download Script - wer kann helfen

Beitrag von DK2000 » 28.03.2020, 19:11

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.

Benutzeravatar
Holgi
Spezialist
Spezialist
Beiträge: 173
Registriert: 12.05.2018, 12:33

Re: LibreOffice Download Script - wer kann helfen

Beitrag von Holgi » 28.03.2020, 20:01

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!!!

Benutzeravatar
Ben
★ Team Blog ★
Beiträge: 349
Registriert: 28.12.2017, 15:19
Geschlecht:

Re: LibreOffice Download Script - wer kann helfen

Beitrag von Ben » 28.03.2020, 21:46

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\
Hawadere! :salute: :saufen: :duckundweg:

Benutzeravatar
Holgi
Spezialist
Spezialist
Beiträge: 173
Registriert: 12.05.2018, 12:33

Re: LibreOffice Download Script - wer kann helfen

Beitrag von Holgi » 29.03.2020, 12:13

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. ")?

Benutzeravatar
Holgi
Spezialist
Spezialist
Beiträge: 173
Registriert: 12.05.2018, 12:33

Re: LibreOffice Download Script - wer kann helfen

Beitrag von Holgi » 29.03.2020, 12:22

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

Benutzeravatar
Ben
★ Team Blog ★
Beiträge: 349
Registriert: 28.12.2017, 15:19
Geschlecht:

Re: LibreOffice Download Script - wer kann helfen

Beitrag von Ben » 29.03.2020, 12:51

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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Hawadere! :salute: :saufen: :duckundweg:

Benutzeravatar
Holgi
Spezialist
Spezialist
Beiträge: 173
Registriert: 12.05.2018, 12:33

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

Beitrag von Holgi » 29.03.2020, 13:02

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

Benutzeravatar
DK2000
Elite
Elite
Beiträge: 2660
Registriert: 03.04.2018, 00:07
Geschlecht:

Re: LibreOffice Download Script - wer kann helfen

Beitrag von DK2000 » 29.03.2020, 13:45

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.

Benutzeravatar
Ben
★ Team Blog ★
Beiträge: 349
Registriert: 28.12.2017, 15:19
Geschlecht:

Re: LibreOffice Download Script - wer kann helfen

Beitrag von Ben » 29.03.2020, 14:02

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.
Hawadere! :salute: :saufen: :duckundweg:

Benutzeravatar
DK2000
Elite
Elite
Beiträge: 2660
Registriert: 03.04.2018, 00:07
Geschlecht:

Re: LibreOffice Download Script - wer kann helfen

Beitrag von DK2000 » 29.03.2020, 14:08

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.

Benutzeravatar
Holgi
Spezialist
Spezialist
Beiträge: 173
Registriert: 12.05.2018, 12:33

Re: LibreOffice Download Script - wer kann helfen

Beitrag von Holgi » 29.03.2020, 16:19

Ben und DK2000:
ihr seid ja echt ein super Team!!!

Benutzeravatar
Holgi
Spezialist
Spezialist
Beiträge: 173
Registriert: 12.05.2018, 12:33

Re: LibreOffice Download Script - wer kann helfen

Beitrag von Holgi » 15.04.2020, 16:22

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:

Antworten