2016-10-18 24 views
-1

我的Powershell(从CMD BAT文件调用)以显示.net版本在win 7和win 8.1中工作正常。 即显示信息,您将看到提示继续。 在Windows 10中,您不会显示任何信息,只有在输入提示后,才会在窗口丢失之前在屏幕上看到信息闪烁。为什么Powershell在哪里|选择是不同的Windows 10

我们如何让这个PowerShell(v5)在Windows 10中工作?

感谢

# 
# Print out .NET versions installed 
# 
# IDs from https://msdn.microsoft.com/en-us/library/hh925568(v=vs.110).aspx#net_d 
# 
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | 
Get-ItemProperty -name Version,Release -EA 0 | 
Where { $_.PSChildName -match '^(?!S)\p{L}'} | 
Select PSChildName, Version, Release, @{ 
    name="Product" 
    expression={ 
     switch($_.Release) { 
     378389 { [Version]"4.5" } 
     378675 { [Version]"4.5.1 Win8.1,2012R2" } 
     378758 { [Version]"4.5.1 Win8,Win7Sp1" } 
     379893 { [Version]"4.5.2" } 
     393295 { [Version]"4.6 Win10" } 
     393297 { [Version]"4.6 !Win10" } 
     394254 { [Version]"4.6.1" } 
     394256 { [Version]"4.6.1" } 
     394271 { [Version]"4.6.1" } 
     394747 { [Version]"4.6.2 Preview" } 
     394748 { [Version]"4.6.2 Preview" } 
     default {[Version] "? $_.Release" } 
     } 
    } 
} 

[string]$MenuOption = Read-Host “`n`t`tEnter <RETURN> to exit” 

回答

1

您可以强制管道输出的结果通过简单的管道,以Out-Default调用Read-Host前:

Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | 
Get-ItemProperty -name Version,Release -EA 0 | 
Where { $_.PSChildName -match '^(?!S)\p{L}'} | 
Select PSChildName, Version, Release, @{ 
    name="Product" 
    expression={ 
     switch($_.Release) { 
     378389 { [Version]"4.5" } 
     378675 { [Version]"4.5.1 Win8.1,2012R2" } 
     378758 { [Version]"4.5.1 Win8,Win7Sp1" } 
     379893 { [Version]"4.5.2" } 
     393295 { [Version]"4.6 Win10" } 
     393297 { [Version]"4.6 !Win10" } 
     394254 { [Version]"4.6.1" } 
     394256 { [Version]"4.6.1" } 
     394271 { [Version]"4.6.1" } 
     394747 { [Version]"4.6.2 Preview" } 
     394748 { [Version]"4.6.2 Preview" } 
     default {[Version] "? $_.Release" } 
     } 
    } 
} |Out-Default 

[string]$MenuOption = Read-Host "`n`t`tEnter <RETURN> to exit" 

要知道,大部分的版本字符串是没有实际有效的值[version]

+0

感谢Mathias,PS来自基于https://msdn.microsoft.com/en-us/library/hh925568(v=vs.110).aspx#net_d的现有Web示例 –

相关问题