使用流水线的数组数组
Array of Arrays using Pipelining
我正在尝试创建一个数组数组,其中有一个指向文件路径数组的文件夹名称数组:
Folder1: File1, File2, File3
Folder2: File1, File2, File3
etc...
我想出的代码是:
#Paths of the folders being patched
$HF_Folders_To_Patch_LIST = Get-Childitem $HF_Source_Path | Where-Object {$_.PSIsContainer} | Foreach-Object {$_.FullName}
$HF_FILES_LIST = $HF_Folders_To_Patch_LIST | ForEach-Object { ,@(Get-ChildItem -Path $FolderPath | Foreach-Object {$_.FullName}) }
根据我的理解,我应该使用“@()”或“,@()”,但是我似乎无法在网上找到太多关于在数组中创建数组的资源,我可能用谷歌搜索错了.我这样做是否正确,或者甚至可以这样做吗?我可以做一个 for 循环并可能得到我想要的结果,但我觉得我在使用管道时好像误解了数组在 powershell 中的工作方式。
脚本专家 TechNet 博客 a rather good article 关于数组中数组的基础知识以及如何通过数组上的位置访问数据。
您可以使用数组列表轻松地向数组添加项目,您添加到数组的项目可以是另一个数组。
所以让我们创建一个数组列表:
$myMainArrayList = New-Object System.Collections.ArrayList
现在让我们创建一个新的数组列表,我们可以将其添加到我们的主数组列表中。
$mySubArrayList = New-Object System.Collections.ArrayList
您现在可以将项目添加到您的子列表中:
$stringObject = "This is a string"
$mySubArrayList.add($stringObject)
现在您可以将子数组添加到主数组中
$mySubArrayList.add($mySubArrayList)
您可以在主数组中添加任意数量的子数组。
在查看下面的答案并意识到我需要像 hashmap 这样的东西之后,powershell 哈希表函数就是答案,这里是对我有用的代码:
$HF_Folders_To_Patch_LIST = Get-Childitem $HF_Source_Path | Where-Object {$_.PSIsContainer} | Foreach-Object {$_.FullName}
$HF_FILES_LIST = @{}
$HF_Folders_To_Patch_LIST | ForEach-Object { $HF_FILES_LIST.Add($_, @(Get-ChildItem -Path $_ | Foreach-Object {$_.FullName})) }
我正在尝试创建一个数组数组,其中有一个指向文件路径数组的文件夹名称数组:
Folder1: File1, File2, File3
Folder2: File1, File2, File3
etc...
我想出的代码是:
#Paths of the folders being patched
$HF_Folders_To_Patch_LIST = Get-Childitem $HF_Source_Path | Where-Object {$_.PSIsContainer} | Foreach-Object {$_.FullName}
$HF_FILES_LIST = $HF_Folders_To_Patch_LIST | ForEach-Object { ,@(Get-ChildItem -Path $FolderPath | Foreach-Object {$_.FullName}) }
根据我的理解,我应该使用“@()”或“,@()”,但是我似乎无法在网上找到太多关于在数组中创建数组的资源,我可能用谷歌搜索错了.我这样做是否正确,或者甚至可以这样做吗?我可以做一个 for 循环并可能得到我想要的结果,但我觉得我在使用管道时好像误解了数组在 powershell 中的工作方式。
脚本专家 TechNet 博客 a rather good article 关于数组中数组的基础知识以及如何通过数组上的位置访问数据。
您可以使用数组列表轻松地向数组添加项目,您添加到数组的项目可以是另一个数组。
所以让我们创建一个数组列表:
$myMainArrayList = New-Object System.Collections.ArrayList
现在让我们创建一个新的数组列表,我们可以将其添加到我们的主数组列表中。
$mySubArrayList = New-Object System.Collections.ArrayList
您现在可以将项目添加到您的子列表中:
$stringObject = "This is a string"
$mySubArrayList.add($stringObject)
现在您可以将子数组添加到主数组中
$mySubArrayList.add($mySubArrayList)
您可以在主数组中添加任意数量的子数组。
在查看下面的答案并意识到我需要像 hashmap 这样的东西之后,powershell 哈希表函数就是答案,这里是对我有用的代码:
$HF_Folders_To_Patch_LIST = Get-Childitem $HF_Source_Path | Where-Object {$_.PSIsContainer} | Foreach-Object {$_.FullName}
$HF_FILES_LIST = @{}
$HF_Folders_To_Patch_LIST | ForEach-Object { $HF_FILES_LIST.Add($_, @(Get-ChildItem -Path $_ | Foreach-Object {$_.FullName})) }