Ich versuche, den folgenden Code zu verwenden, um die Version einer Datei mit einer bestimmten Version zu vergleichen, und sagen Sie mir, welche höher ist.Dateiversionen in Powershell vergleichen
function Get-FileVersionInfo
{
param(
[Parameter(Mandatory=$true)]
[string]$FileName)
if(!(test-path $filename)) {
write-host "File not found"
return $null
}
return [System.Diagnostics.FileVersionInfo]::GetVersionInfo($FileName)
}
$file = Get-FileVersionInfo("C:\program files\internet explorer\iexplore.exe")
if($file.ProductVersion -gt "11.00.9600.17840") {
echo "file is higher version"
}
elseif($file.ProductVersion -eq "11.00.9600.17840") {
echo "file is equal version"
}
else {
echo "file is lower version"
}
echo "Product version is:" $file.ProductVersion
FYI mit ProductVersion anstelle von FileVersion, da FileVersion manchmal zusätzliche Daten enthält.
Es gibt "Datei ist eine niedrigere Version" zurück, obwohl das die gleiche Version ist, die in den Eigenschaften angezeigt wird.
Muss ich etwas anderes tun, damit die ProductVersion-Eigenschaft mit einer Zeichenfolge verglichen wird?
Alles, was Sie zu tun haben, ist Ihre Version String als Version 'if ($ file.ProductVersion -gt [Version] "11.00.9600.17840") Gießen {' – LotPings
@Joey, ich habe es nicht getestet, hier funktioniert. $ file hat 'TypeName: System.Diagnostics.FileVersionInfo' und keine Zeichenkette. – LotPings