让变量在Powershell中的哈希表中运行

让变量在Powershell中的哈希表中运行,powershell,hashtable,Powershell,Hashtable,所以现在我在Powershell中工作,正在处理我的第一个哈希表。因此,在我的代码中,我有一个获取文件元数据的变量,我希望该变量通过哈希表来缩短元数据。例如,我正在使用的文件是v2.0.50727版本,我想将其转换为“lib\net20”。我知道我现在的设置不起作用,我想我需要做一个子字符串来获得我想要的,但我不知道如何设置 $retCode = 0 write-verbose "Getting version of $file..." $version = (G

所以现在我在Powershell中工作,正在处理我的第一个哈希表。因此,在我的代码中,我有一个获取文件元数据的变量,我希望该变量通过哈希表来缩短元数据。例如,我正在使用的文件是v2.0.50727版本,我想将其转换为“lib\net20”。我知道我现在的设置不起作用,我想我需要做一个子字符串来获得我想要的,但我不知道如何设置

$retCode = 0
        write-verbose "Getting version of $file..."
        $version = (Get-Item $File).VersionInfo.FileVersion
        $id = $file.Substring(0, $File.LastIndexof('.'))
        $filepath = Get-ChildItem "$File"
        $netVer = ildasm /text $File| findstr Metadata
        $OriginalFilename = (Get-Item $File).VersionInfo.OriginalFilename
        #Some type of substring to turn v2.0.50727 into 2.0
        $netVerConv = @{2.0 = "lib\net20";}
我想我需要某种类型的foreach循环,但我真的不知道这里。最终,哈希表将如下所示

        $netVerConv = @{
        2.0 = "lib\net20";
        3.0 = "lib\net30";
        3.5 = "lib\net35";
        4.0 = "lib\net40";
        }    
试试这个:

$file = 'C:\windows\explorer.exe'
$version = (Get-Item $file).VersionInfo

$ShortVer = '{0}.{1}'-f $version.FileMajorPart,$version.FileMinorPart
$ShortVer
6.1