Seite 2 von 3

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 15.04.2020, 17:04
von Ben
Hallo Holgi versuche doch bitte mal diese Zeile.

Code: Alles auswählen

powershell -noprofile "$latest=((iwr -uri "https://download.documentfoundation.org/libreoffice/stable" -UseBasicParsing).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
Wichtig dabei ist auch das in der download URL

Code: Alles auswählen

"https://download.documentfoundation.org/libreoffice/stable/$($latest)/win/x86/LibreOffice_$($latest)_Win_x86.msi"
das "$($latest)" so zwischen "stable/" und "/win" steht und nicht wie vorher nur "$latest" denn dann hatte es mit -UseBasicParsing nicht funktioniert. Und das -UseBasicParsing gehört entweder vor -uri oder nach der zur -uri gehörenden Webadresse.

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 16.04.2020, 14:56
von Holgi
Hallo Ben!
der String
powershell -noprofile "$latest=((iwr -uri "https://download.documentfoundation.org ... ice/stable" -UseBasicParsing).links|?{$_.href -match '(\d+(\.\d+){1,3})'}).href -replace '/', ''|sort -descending|select -first 1";Start-BitsTransfer -Source "https://download.documentfoundation.org ... in_x86.msi" -Destination $env:userprofile\downloads
funktioniert, nur leider kann ich jetzt nicht ausprobieren, wie es sich auf einem PC verhält, der "jungfreulich" ist; sprich Internet Explorer noch nicht gestartet war.
Ich habe versucht meinen PC mit optionalfeatures.exe und dann Internet Explorer ab- und nach Neustart wieder angewählt wieder in diesen Zustand zu bringen. Aber die FirstRun Page wurde gar nicht mehr gezeigt. Auch die entsprechenden Registry Werte wieder auf "0" setzen brachte den IE nicht mehr in den "Auslieferungszustand". Erst mal egal. Ich gehe davon aus, dass es mit dem neuen String und dem
-UseBasicParsing Parameter schon funktionieren wird.
Wo ich dich gerade "am Apparat habe":
Wir haben ja jetzt die tollen portablen Browser und den portablen Thunderbird-Updater.
Wie wäre es noch mit einem portablen MediaPlayer-Updater wie dem VLC?
Da gibt es ja diese URL https://download.videolan.org/pub/video ... ast/win32/, welche auf die letzte Version verzweigt. Naja, hinkt auch etwas hinterher, da noch die 3.0.8 angezeigt wird, aber 3.0.9 schon raus ist. Sei´s drum.
Wenn du keine Lust, oder Zeit hast, bzw. keinen Bedarf dafür siehst:
könntest du den PS-Einzeiler so umschreiben, das er die neueste Version des VLC herunterladen kann?
Ich habe zwar im Netz ein kleines Script gefunden, aber das ist nicht so schön kurz und knackig:
Powershell:

Code: Alles auswählen

function downloadProgram ($readVersion, $version, $download, $name) {
    Write-Host "LOCAL VERSION: $readVersion"
    Write-Host "WEB__ VERSION: $version"
    Write-Host "LINK: $download"
    Write-Host "FILENAME: $name"
    Write-Host " "
    if ($readVersion -lt $version) {
        Write-Host "Newer Version Found Online!"
        Read-Host "Press Enter to Download"
        Import-Module BitsTransfer
        $start_time = Get-Date
        Start-BitsTransfer -Source "$download" -Destination "$name"
        Write-Output "Completed in: $((Get-Date).Subtract($start_time).Seconds) seconds"
    } else {
        Write-Host "No Newer Version Found."
    }
}

####################################################################################
####################################################################################



function Download-VLC {
    # SET VARIABLES
    $initialURL = "http://www.videolan.org/vlc/download-windows.html"
    $folderName = "vlc"
    $filenamePrefix = "vlc86"
    $filenameExtension = "exe"
    $defaultVersion = "0.0.0"
    ###############

    # MIGHT NEED CUSTOMIZATION DEPENDING ON CRAWL METHOD
    $program = (Invoke-WebRequest -Uri "$initialURL").Links | Where-Object {($_.href -like "*-win32.exe")} | select href
    $programURL = $program[0]
    $programSTRING = "$programURL"

    $programVERSION = $programSTRING -replace("@{href=//get.videolan.org/vlc/\d{1}\.\d{1}\.\d{1}/win32/vlc-","") -replace("-win32.exe}","")
    $programDOWNLOAD = $programSTRING -replace("@{href=","http:") -replace("}","")
    ####################################################
    
    # NO CHANGES NEEDED
    $programFILENAME = ".\$folderName\$filenamePrefix-$programVERSION.$filenameExtension"
    $programREAD = Get-ChildItem ".\$folderName\" -name | Sort-Object -Descending | Select-Object -First 1
    if ($programREAD.length -eq 0) {
        $programREADVERSION = "$defaultVersion"
    } else {
        $programREADVERSION = $programREAD -replace("$filenamePrefix-","") -replace(".$filenameExtension","")
    }
    downloadProgram $programREADVERSION $programVERSION $programDOWNLOAD $programFILENAME
    ###################   
}

####################################################################################
####################################################################################

Write-Host " "
Write-Host "This script will check for updates to:"
Write-Host " "
Write-Host "- VLC"
Write-Host " "
Read-Host "Press Enter to start"


Write-Host "################################################################################"
Write-Host "Checking: VLC"
Write-Host "########################################"
Download-VLC
Write-Host " "



Write-Host "################################################################################"
Write-Host " "
Write-Host "SCRIPT COMPLETE"
Read-Host "Press Enter to exit"
stammt von hier: https://www.boriskagan.net/how-to-crawl ... owershell/
Dort etwas umfangreicher.
LG
Holgi

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 17.04.2020, 17:28
von Ben
Hallo Holgi
Hier der VLC Einzeiler download. Nur wird eben immer noch die Version 3.0.8 herunter geladen. Ich hatte es auch über "vlc.de" probiert das auch funktionierte aber da bekommt man nicht die Original 3.0.9.2 Version da stimmt der Hashwert nicht mit der vom ftp Server von videolan.org überein.

32 Bit Version

Code: Alles auswählen

powershell -noprofile "$program = (((iwr -Uri "http://www.videolan.org/vlc/download-windows.html" -UseBasicParsing).Links |?{($_.href -like '*-win32.exe')})|select href) -replace('@{href=','http:') -replace('}','')";Start-BitsTransfer -Source "$program" -Destination $env:userprofile\downloads
64 Bit Version

Code: Alles auswählen

powershell -noprofile "$program = (((iwr -Uri "http://www.videolan.org/vlc/download-windows.html" -UseBasicParsing).Links |?{($_.href -like '*-win64.exe')})|select href) -replace('@{href=','http:') -replace('}','')";Start-BitsTransfer -Source "$program" -Destination $env:userprofile\downloads
LG
Ben

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 18.04.2020, 11:40
von Holgi
Hallo Ben!
Vielen, vielen Dank! :dankeschoen:
Funktioniert super!
Ich dachte, ich könnte es selber mal abändern und versuchen durch Austausch von "win64.exe" durch "win64.msi" "win64.zip" bzw. "win64.7z" auch die anderen Dateiformate mal herunterzuladen. Aber so einfach ist das scheinbar nicht.
Hast du eine Idee, was da noch geändert werden muss?

LG Holgi

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 18.04.2020, 12:17
von Ben
Hallo Holgi hier die Zeilen für "MSI", "Zip" und "7zip"
Als MSI
32 Bit

Code: Alles auswählen

powershell -noprofile "$program = (((iwr -Uri "http://www.videolan.org/vlc/download-windows.html" -UseBasicParsing).Links |?{($_.href -like '*-win32.exe')})|select href) -replace('@{href=','http:') -replace('exe}','msi')";Start-BitsTransfer -Source $program -Destination $env:userprofile\downloads
64 Bit

Code: Alles auswählen

powershell -noprofile "$program = (((iwr -Uri "http://www.videolan.org/vlc/download-windows.html" -UseBasicParsing).Links |?{($_.href -like '*-win64.exe')})|select href) -replace('@{href=','http:') -replace('exe}','msi')";Start-BitsTransfer -Source $program -Destination $env:userprofile\downloads
Als Zip
32 Bit

Code: Alles auswählen

powershell -noprofile "$program = (((iwr -Uri "http://www.videolan.org/vlc/download-windows.html" -UseBasicParsing).Links |?{($_.href -like '*-win32.exe')})|select href) -replace('@{href=','http:') -replace('exe}','zip')";Start-BitsTransfer -Source $program -Destination $env:userprofile\downloads
64 Bit

Code: Alles auswählen

powershell -noprofile "$program = (((iwr -Uri "http://www.videolan.org/vlc/download-windows.html" -UseBasicParsing).Links |?{($_.href -like '*-win64.exe')})|select href) -replace('@{href=','http:') -replace('exe}','zip')";Start-BitsTransfer -Source $program -Destination $env:userprofile\downloads
Als 7zip
32 Bit

Code: Alles auswählen

powershell -noprofile "$program = (((iwr -Uri "http://www.videolan.org/vlc/download-windows.html" -UseBasicParsing).Links |?{($_.href -like '*-win32.exe')})|select href) -replace('@{href=','http:') -replace('exe}','7z')";Start-BitsTransfer -Source $program -Destination $env:userprofile\downloads
64 Bit

Code: Alles auswählen

powershell -noprofile "$program = (((iwr -Uri "http://www.videolan.org/vlc/download-windows.html" -UseBasicParsing).Links |?{($_.href -like '*-win64.exe')})|select href) -replace('@{href=','http:') -replace('exe}','7z')";Start-BitsTransfer -Source $program -Destination $env:userprofile\downloads

LG
Ben

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 18.04.2020, 12:23
von Holgi
Super! Vielen, vielen Dank!
LG Holgi :dankeschoen:

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 18.04.2020, 12:26
von DK2000
Das mit den anderen Formaten müsste gehen, wenn man anstelle von www.videolan.org auf get.videolan.org/vlc/ wechselt. Da hocken dann alle Varianten in einem Ordner. Müsste man dann aber komplett wieder umschreiben, damit die neue Seite verarbeitet wird oder mann nimmt gleich den Ordner last.

Bei solchen Sachen vermisse ich dann im Linux und apt. Gibt zwar unter Windows sowas wie Chocolatey, aber so das wahre ist das auch nicht.

Ah, Ben war schon schneller. ;)

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 18.04.2020, 12:38
von Holgi
Ich hatte schon mal so einen portablen VLC Updater angeregt, wie bei den Browsern und dem Thunderbird.
VLC an sich ist ja praktisch schon portable, wenn man es entpackt.
Dumm nur, dass ihre eigene "last" aktuell noch auf die Version 3.0.8 verweist, obwohl es schon eine 3.0.9.2 gibt.
Da ist LibreOffice (und explizit der Powershell-Downloader hier von euch) doch wesentlich besser: der zieht immer die aktuelle Version.
Mit dem habe ich mir dann selbst einen LibreOfficePortable Updater "gestrickt".
Jetzt ist alles wichtige zusammen: Browser, e-mail, Office Suite und eben MediaPlayer

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 12.07.2024, 10:10
von Holgi
Hi @Ben & @DK2000.
Das Script zum Downloaden von LibreOffice in der neuesten Version hatte mir in der Vergangenheit immer gut Dienste geleistet.
Jetzt stelle ich fest, dass es mit der Versionsauswahl Probleme gibt. Je nach dem, welche Download URL man eingibt, kommt es zu unterschiedlichen und unerwarteten Ergebnissen.
Das Script soll ja eigentlich (Stand: 12.07.24) die Version 24.2.5. herunterladen.
Ich erhalte aber entweder die Version 7.6.7 oder 24.2.3.

Code: Alles auswählen

powershell -noprofile "$latest=((iwr -uri "https://ftp.gwdg.de/pub/tdf/libreoffice/stable" -UseBasicParsing).links|?{$_.href -match '(\d+(\.\d+){1,3})'}).href -replace '/', ''|select -first 1";Start-BitsTransfer -Source "https://ftp.gwdg.de/pub/tdf/libreoffice/stable/$($latest)/win/x86_64/LibreOffice_$($latest)_Win_x86-64.msi"

Code: Alles auswählen

powershell -noprofile "$latest=((iwr -uri "https://download.documentfoundation.org/libreoffice/stable" -UseBasicParsing).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_64/LibreOffice_$($latest)_Win_x86-64.msi"
Wie @NotNerdNotDau hier schrieb:

https://www.deskmodder.de/blog/2024/07/ ... ent-280082
kann man mit

Code: Alles auswählen

select -first
und

Code: Alles auswählen

 select -skip 2
das Ganze so steuern, dass das gewünschte Ergebnis dabei herauskommt.
Dies setzt allerdings voraus, dass man das gewünschte Ergebnis bzw. die Reihenfolge auf dem Server schon kennt und das Script daraufhin jedesmal anpassen müßte.
Kennt ihr noch eine andere Methode zum Download der aktuellen stabilen LibreOffice Version ohne Hartkodierung der Versionsnummer?

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 12.07.2024, 10:18
von g-force
Sowas spuckt "ChatGPT" dazu aus:

Code: Alles auswählen

# Define the URL to check for the latest version
$releaseUrl = "https://www.libreoffice.org/download/download/"

# Define the pattern to find the download link
$downloadLinkPattern = 'https:\/\/download\.documentfoundation\.org\/libreoffice\/stable\/(\d+\.\d+\.\d+)\/win\/x86_64\/LibreOffice_(\d+\.\d+\.\d+)_Win_x64\.msi'

# Use Invoke-WebRequest to get the download page content
$pageContent = Invoke-WebRequest -Uri $releaseUrl -UseBasicParsing

# Find the download link using regex
if ($pageContent.Content -match $downloadLinkPattern) {
    $version = $matches[1]
    $downloadUrl = $matches[0]
    $installerPath = "$env:TEMP\LibreOffice_$version_Win_x64.msi"
    
    Write-Output "Latest version found: $version"
    Write-Output "Download URL: $downloadUrl"
    Write-Output "Downloading LibreOffice $version..."
    
    # Download the installer
    Invoke-WebRequest -Uri $downloadUrl -OutFile $installerPath
    
    Write-Output "Download complete. Installing LibreOffice $version..."
    
    # Install LibreOffice silently
    Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$installerPath`" /quiet /norestart" -Wait
    
    Write-Output "Installation complete."
} else {
    Write-Output "Failed to find the download link for LibreOffice."
}

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 12.07.2024, 10:36
von Holgi
danke @g-force.
Ich nehme an, du hast es noch nicht ausprobiert?
Bei mir funzt es nicht. Meiner Meinung nach kann es das auch nicht, da im Script u.a. falsche Werte drin sind.
Dort steht z.B.
LibreOffice_$version_Win_x64.msi
Problem ist: die x64 Version hat den Namen
LibreOffice_XXXXX_Win_x86-64.msi
Kann also schon mal von daher nicht funktionieren.

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 12.07.2024, 14:33
von DK2000

Code: Alles auswählen

$latest=((iwr -uri "https://download.documentfoundation.org/libreoffice/stable" -UseBasicParsing).links|?{$_.href -match '(\d+(\.\d+){1,3})'}).href -replace '/', ''|select -Last 1
Das würde erst einmal die 24.2.5 wählen.

Code: Alles auswählen

Start-BitsTransfer -Source "https://download.documentfoundation.org/libreoffice/stable/$($latest)/win/x86_64/LibreOffice_$($latest)_Win_x86-64.msi"
Und der Download so klappt ja.

Ist aber kompliziert. was alles sauber in nur eine Zeile zu quetschen.

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 12.07.2024, 16:19
von Holgi
Danke @DK2000.
Der Befehl

Code: Alles auswählen

powershell -noprofile "$latest=((iwr -uri "https://download.documentfoundation.org/libreoffice/stable" -UseBasicParsing).links|?{$_.href -match '(\d+(\.\d+){1,3})'}).href -replace '/', ''|select -Last 1";Start-BitsTransfer -Source "https://download.documentfoundation.org/libreoffice/stable/$($latest)/win/x86_64/LibreOffice_$($latest)_Win_x86-64.msi" -Destination $env:userprofile\downloads
funktioniert zwar unter https://download.documentfoundation.org/
Aber auf dem Server von z.B. https://ftp.gwdg.de/pub/tdf/libreoffice/stable
wird die Version 7.6.7 ge-downloaded.

Code: Alles auswählen

powershell -noprofile "$latest=((iwr -uri "https://ftp.gwdg.de/pub/tdf/libreoffice/stable" -UseBasicParsing).links|?{$_.href -match '(\d+(\.\d+){1,3})'}).href -replace '/', ''|select -Last 1";Start-BitsTransfer -Source "https://ftp.gwdg.de/pub/tdf/libreoffice/stable/$($latest)/win/x86_64/LibreOffice_$($latest)_Win_x86-64.msi" -Destination $env:userprofile\downloads
Es wäre schön, wenn es eine "Intelligenz" geben würde, die wirklich die höchste Versionsnummer herausfiltert und nicht nur die Version an einer bestimmten Stelle nimmt. Dies kann sich ja immer mal ändern. Hast du noch eine Idee?
vlt. kann das hier weiterhelfen:
https://stackoverflow.com/questions/526 ... descending
für mich ist das allerdings zu hoch.

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 12.07.2024, 16:52
von DK2000
In einer Zeile nicht. Da bräuchte man schon eine .ps1. So auf die Schelle:

Code: Alles auswählen

$latest=((iwr -uri "https://ftp.gwdg.de/pub/tdf/libreoffice/stable/" -UseBasicParsing).links|?{$_.href -notlike "7.6*" -and $_.href -match '(\d+(\.\d+){1,3})'}).href -replace '/', ''|select -Last 1
die 7.6.x wird ignoriert und die 14.2.5 jetzt an letzter Stelle ausgewählt.

Re: LibreOffice Download Script - wer kann helfen

Verfasst: 12.07.2024, 17:13
von Holgi
funktioniert leider nicht.
Nehme ich den Teil

Code: Alles auswählen

$_.href -notlike "7.6*" -and 
raus, läufts. Mit leider nicht.
Es liegt mal wieder an den Anführungszeichen.
Da muss es lauten:

Code: Alles auswählen

$_.href -notlike '7.6*' -and
also completto:

Code: Alles auswählen

powershell -noprofile "$latest=((iwr -uri "https://ftp.gwdg.de/pub/tdf/libreoffice/stable" -UseBasicParsing).links|?{$_.href -notlike '7.6*' -and $_.href -match '(\d+(\.\d+){1,3})'}).href -replace '/', ''|select -Last 1";Start-BitsTransfer -Source "https://ftp.gwdg.de/pub/tdf/libreoffice/stable/$($latest)/win/x86_64/LibreOffice_$($latest)_Win_x86-64.msi" -Destination $env:userprofile\downloads
Dann läuft das Script und lädt die Version 24.2.5 jetzt auch mit
https://download.documentfoundation.org
und
https://ftp.gwdg.de/pub/tdf/libreoffice/stable