让一个变量在Powershell中运行一个哈希表

时间:2014-12-16 17:35:10

标签: powershell hashtable

所以现在我在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";
        }    

1 个答案:

答案 0 :(得分:1)

试试这个:

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

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