2017-05-21 9 views
0

内のすべてのバージョンを見つける:一覧 - 私はバージョン番号の文字列のリストを持っている特定のバージョンのエリア

1.1.1.0001 
1.1.1.0002 
1.1.2.0003 
1.1.3.0004 
1.2.1.0005 
1.2.2.0006 
2.1.1.0007 
2.2.1.0008 

私は番号が指定されたバージョンのエリアにあるバージョンを確認したいと思います。 など。このエリアのすべてのバージョン:1.1.3.0004 - 2.1.1.0007。

期待される結果:あなただけVersionクラスを使用することができます。この場合

1.1.3.0004 
1.2.1.0005 
1.2.2.0006 
2.1.1.0007 

答えて

4

Versionに各文字列をキャストして比較:左のオペランドがある場合に比較が自動的にVersionに右オペランドを変換すること

PS Home:\> $versions = -split '1.1.1.0001 
>>> 1.1.1.0002 
>>> 1.1.2.0003 
>>> 1.1.3.0004 
>>> 1.2.1.0005 
>>> 1.2.2.0006 
>>> 2.1.1.0007 
>>> 2.2.1.0008' 

PS Home:\> $versions | where { [version]$_ -ge '1.1.3.0004' -and [version]$_ -le '2.1.1.7' } 
1.1.3.0004 
1.2.1.0005 
1.2.2.0006 
2.1.1.0007 

注意を。

+0

感謝を「バージョン」に文字列を変換し、それぞれのチェックを行います。 – k7s5a

0

非常に素晴らしいソリューションthat's

$Min = [version]::new('1.1.3.0004') 
$Max = [version]::new('2.1.1.0007') 
'1.1.1.0001','1.1.1.0002','1.1.2.0003','1.1.3.0004','1.2.1.0005','1.2.2.0006','2.1.1.0007','2.2.1.0008' | Where-Object { 
    [version]::new($_) -le $Max -and 
    [version]$_ -ge $Min 
} 
+0

バージョンctorを明示的に使用する特別な理由は、1つの場合を除いてすべてで明示的に使用される理由は何ですか? – Joey

関連する問題