我試圖用下面的代碼來比較一個文件的版本與指定的版本,並告訴我哪一個更高。比較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
僅使用ProductVersion代替FileVersion的FYI,因爲FileVersion有時似乎包含額外的數據。
它返回「文件是較低版本」,即使這是屬性中顯示的相同版本。
我是否需要做其他事情才能將ProductVersion屬性與字符串進行比較?
所有你所要做的就是鑄造你的版本字符串版本'如果($ file.ProductVersion -gt [版] 「11.00.9600.17840」){' – LotPings
@Joey,我也測試了一下,在這裏作品。 $文件是'TypeName:System.Diagnostics.FileVersionInfo'而不是字符串。 – LotPings