次のコードを使用して、ファイルのバージョンを指定されたバージョンと比較し、どちらが高いか教えています。Powershellのファイルバージョンを比較する
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はFileVersionの代わりにProductVersionを使用していますが、FileVersionに余分なデータが含まれているように見えることがあります。
プロパティに表示されるのと同じバージョンであっても、「ファイルは下位バージョンです」を返します。
ProductVersionプロパティと文字列を比較するために何か他の処理を行う必要がありますか?
あなたがするしたすべてのバージョン 'もし($ file.ProductVersion -gt [バージョン] "11.00.9600.17840"){' – LotPings
@Joeyとしてバージョン文字列をキャストされて、私はここで、それをテストし、それをやりました働く$ fileは 'TypeName:System.Diagnostics.FileVersionInfo'であり、文字列ではありません。 – LotPings