从目录中读取msi文件列表并将其保存在数组中

时间:2014-01-13 17:46:54

标签: .net powershell

以下是我的代码,用于读取.msi扩展名的文件名目,其中$ to = C:\ bob

  $listOfMSIs = Get-ChildItem –Path $to -Filter "*.msi"

运行上面一行后,Variable $ listOfMSIs会有这样的内容

    Directory: C:\bob

Mode                Last  Write  Time     Length  Name                                        
----                -------------     ------       ----                                        
-a---        09/01/2014     12:18     237568      a.msi                   
-ar--        03/06/2013     17:54    3813376      b.msi                   
-ar--        29/05/2013     14:41    2326528      c.msi 

现在我要做的是获取内容(名称列中的msi文件名)并将其存储为 一个数组。

有人有任何建议吗? 提前致谢

3 个答案:

答案 0 :(得分:3)

如果您正在运行PowerShell v3或更高版本,请执行以下操作:

$FileNames = (Get-ChildItem –Path $to -Filter "*.msi").Name;

答案 1 :(得分:3)

这应该这样做:

$filenames = Get-ChildItem $to *.msi | Foreach Name

或者如果在V2或V1上:

$filenames = Get-ChildItem $to *.msi | Foreach {$_.Name}

答案 2 :(得分:3)

您可以将结果传递给Select-Object

$listOfMSIs = Get-ChildItem –Path $to -Filter "*.msi" | Select-Object -ExpandProperty Name

当然,以上内容可以简化为:

$listOfMSIs = Get-ChildItem $to *.msi | Select-Object -Expand Name