Powershell Datei umbenennen
Hallo Alle.
2021 hatte ich schon mal das Thema.
Fehler VBScript
Initial ging es um VBS, doch schlußendlich schlug colinardo ein kurzes knackiges Powershell-Script vor.
Der Dateiname bei ausführbaren Dateien soll um die Dateiversion erweitert werden.
Hier der Code:
Manche EXE-Dateien enthalten jedoch keine Dateiversion, dann kommt als Namensergänzung "0.0.0.0".
In diesem Fall soll statt Dateiversion die Produktversion eingesetzt werden.
Die Zeile: param( ... muß zwingend in der 1. Scriptzeile stehen, sonst wird "param" nicht als cmd erkannt.
Also wie frage ich vor "Get-Item ..." richtig ab, ob die Datei, die als Argument übergeben wird, eine gültige Dateiversion enthält, so daß ich statt dessen die Produktversion für die Umbenennung verwende?
Schwierig ist auch die Testerei, da das Script im Kontextmenü ausgeführt wird und ich die Fehlermeldungen nicht lesen kann.
Vielen Dank im Voraus für Eure Geistesblitze.
Gruß
Peter
2021 hatte ich schon mal das Thema.
Fehler VBScript
Initial ging es um VBS, doch schlußendlich schlug colinardo ein kurzes knackiges Powershell-Script vor.
Der Dateiname bei ausführbaren Dateien soll um die Dateiversion erweitert werden.
Hier der Code:
param(
[parameter(mandatory=$true)][ValidateScript({Test-Path $_})][string]$file
)
Get-Item -LiteralPath $file | rename-item -NewName {"$($_.BaseName).$($_.VersionInfo.FileVersion)$($_.Extension)"} -verbose
Manche EXE-Dateien enthalten jedoch keine Dateiversion, dann kommt als Namensergänzung "0.0.0.0".
In diesem Fall soll statt Dateiversion die Produktversion eingesetzt werden.
Die Zeile: param( ... muß zwingend in der 1. Scriptzeile stehen, sonst wird "param" nicht als cmd erkannt.
Also wie frage ich vor "Get-Item ..." richtig ab, ob die Datei, die als Argument übergeben wird, eine gültige Dateiversion enthält, so daß ich statt dessen die Produktversion für die Umbenennung verwende?
Schwierig ist auch die Testerei, da das Script im Kontextmenü ausgeführt wird und ich die Fehlermeldungen nicht lesen kann.
Vielen Dank im Voraus für Eure Geistesblitze.
Gruß
Peter
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 673011
Url: https://administrator.de/forum/powershell-datei-umbenennen-673011.html
Ausgedruckt am: 24.05.2025 um 14:05 Uhr
2 Kommentare
Neuester Kommentar
In diesem Fall soll statt Dateiversion die Produktversion eingesetzt werden
param(
[parameter(mandatory=$true)][ValidateScript({Test-Path $_})][string]$file
)
Get-Item -LiteralPath $file | rename-item -NewName {"$($_.BaseName).$(if($_.VersionInfo.FileVersion -gt [version]'0.0.0.0'){$_.VersionInfo.FileVersion}else{$_.VersionInfo.ProductVersion})$($_.Extension)"} -verbose
Schwierig ist auch die Testerei, da das Script im Kontextmenü ausgeführt wird und ich die Fehlermeldungen nicht lesen kann.
Einfach mit dem Dateinamen in einer gestarteten Konsole von Hand ausführen ..../script.ps1 -file d:\Pfad\zur\datei.exe