Dateiversionen mit Skript vergleichen und wenn Datei neuer ist, installieren
Moin zusammen,
ich bräuchte mal eure Hilfe bitte.
Könnte ihr mir helfen, das zu realisieren als Skript? Am liebsten als Batch. Wenn das nicht geht, als VBS oder PS1.
Check Version von D:\Download\Tool.exe
Wenn Versionsnummer < als C:\Program Files\Tool\Tool.exe
GOTO :Ende
D:\Download\Tool.exe /silent
:Ende
Das Skript soll also 2 Dateiversionen vergleichen und wenn die eine Datei neuer ist (die auf D dann soll sie installiert werden. Alternativ würde auch ein portable Programm gehen, mit dem ich das abrufen und vergleichen kann.
Danke vorab für eure tolle Unterstützung.
Jens!
ich bräuchte mal eure Hilfe bitte.
Könnte ihr mir helfen, das zu realisieren als Skript? Am liebsten als Batch. Wenn das nicht geht, als VBS oder PS1.
Check Version von D:\Download\Tool.exe
Wenn Versionsnummer < als C:\Program Files\Tool\Tool.exe
GOTO :Ende
D:\Download\Tool.exe /silent
:Ende
Das Skript soll also 2 Dateiversionen vergleichen und wenn die eine Datei neuer ist (die auf D dann soll sie installiert werden. Alternativ würde auch ein portable Programm gehen, mit dem ich das abrufen und vergleichen kann.
Danke vorab für eure tolle Unterstützung.
Jens!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 254641
Url: https://administrator.de/contentid/254641
Ausgedruckt am: 26.11.2024 um 15:11 Uhr
9 Kommentare
Neuester Kommentar
Moin Jens,
geht es wirklich um ausführbare Dateien, die nicht auf dem Rechner installiert sind? Falls nicht, ist die Registry der erste Anlaufpunkt.
Aus der Hüfte heraus würde ich es mit Powershell so versuchen:
Gruß,
Dani
geht es wirklich um ausführbare Dateien, die nicht auf dem Rechner installiert sind? Falls nicht, ist die Registry der erste Anlaufpunkt.
Aus der Hüfte heraus würde ich es mit Powershell so versuchen:
[System.Diagnostics.FileVersionInfo]::GetVersionInfo("C:\Temp\tool.exe").FileVersion
Am liebsten als Batch.
Verabschiede dich davon... die Zukunft ist Powershell. War in den letzten Tagen bei Microsoft und die cmd.exe soll schnellst möglich verschwinden.Gruß,
Dani
Hallo Jens,
diese Fragen kommen immer wieder. Mit Batch pur ist das nicht zu machen, aber schau mal dort vorbei.
@Dani
Grüße
rubberman
diese Fragen kommen immer wieder. Mit Batch pur ist das nicht zu machen, aber schau mal dort vorbei.
@Dani
Zitat von @Dani:
War in den letzten Tagen bei Microsoft und die cmd.exe soll schnellst möglich verschwinden.
Tot gesagte leben länger Das ist seit Jahren immer mal wieder im Gespräch und (vermutlich aus Kompatibilitätsgründen und weil all die 3rd Party Konsoleprogramme irgendwo ausgeführt werden wollen) konnte man sich nie dazu entschließen. Ist auch völlig Wurscht ob die paar kB nun noch zusätzlich auf der Platte liegen oder nicht. Ich bin gespannt... War in den letzten Tagen bei Microsoft und die cmd.exe soll schnellst möglich verschwinden.
Grüße
rubberman
Zitat von @Dani:
Moin Jens,
geht es wirklich um ausführbare Dateien, die nicht auf dem Rechner installiert sind? Falls nicht, ist die Registry der erste
Anlaufpunkt.
Aus der Hüfte heraus würde ich es mit Powershell so versuchen:
> Am liebsten als Batch.
Verabschiede dich davon... die Zukunft ist Powershell. War in den letzten Tagen bei Microsoft und die cmd.exe soll schnellst
möglich verschwinden.
Gruß,
Dani
Moin Jens,
geht es wirklich um ausführbare Dateien, die nicht auf dem Rechner installiert sind? Falls nicht, ist die Registry der erste
Anlaufpunkt.
Aus der Hüfte heraus würde ich es mit Powershell so versuchen:
> [System.Diagnostics.FileVersionInfo]::GetVersionInfo("C:\Temp\tool.exe").FileVersion
>
> Am liebsten als Batch.
Verabschiede dich davon... die Zukunft ist Powershell. War in den letzten Tagen bei Microsoft und die cmd.exe soll schnellst
möglich verschwinden.
Gruß,
Dani
Ich war gestern auch dort, und außer Powershell wird nicht mehr viel verwendet. Sei es zur Migration von Exchange auf office365 oder auch für simple Skripte. Man muss sich halt ein wenig umgewöhnen, und Powershell kann sowieso alles was die cmd.exe auch kann. So...
Hey,
das hab ich hier schon mal beantwortet.
Ich glaub nicht, dass Batch so bald abgeschafft wird. Zum Beispiel nutzen viele Installer das noch. Vielleicht wird es nicht mehr standardmässig installiert. Aber auch dann wird M$ viele Supportanrufe bekommen
Gruß, Endoro
das hab ich hier schon mal beantwortet.
Ich glaub nicht, dass Batch so bald abgeschafft wird. Zum Beispiel nutzen viele Installer das noch. Vielleicht wird es nicht mehr standardmässig installiert. Aber auch dann wird M$ viele Supportanrufe bekommen
Gruß, Endoro
Anbei die erste Version aus der Hüfte geschossen:
Bitte daran denken, den Pfad zur Soruce und Destinationanwendung anzupassen.
Gruß,
Dani
<#
Author: Dani
Erstellt: 14.11.2014
Aufgabe: Versionsnummer zweier EXE-Dateien auslesen und vergleichen
#>
[string] $strSourceApp = "U:\Programme\Oracle\Jave JRE\jre-7u65-windows-x64.exe"
[string] $strDestApp = "U:\Programme\Oracle\Jave JRE\jre-7u67-windows-x64.exe"
if ($strSourceApp -ne "") {
[array] $strSourceAppVer = [System.Diagnostics.FileVersionInfo]::GetVersionInfo("$strSourceApp").FileVersion.Split(" ")
Write-host "Bestehende Version: $strSourceAppVer"
if ($strDestApp -ne "") {
[array] $strDestAppVer = [System.Diagnostics.FileVersionInfo]::GetVersionInfo("$strDestApp").FileVersion.Split(" ")
Write-host "Vergleichsversion: $strDestAppVer"
if($strSourceAppVer -lt $strDestAppVer) { Write-Host "Neue Version vorhanden." }
else { write-host "Keine neue Version gefunden!" }
}
else { write-host "Datei nicht gefunden!" }
}
else { write-host "Datei nicht gefunden!" }
Gruß,
Dani