我刚开始学习一些 PowerShell 并迈出第一步。我正在训练创建目录。
我在下面编写了这段代码,但我想问一下如何进一步简化它并帮助我继续学习和扩展我的 PowerShell 技能?
$branch1 = (@('Fox','Wolf','Cat','Cow','Snake','Elephant') | ForEach-Object { New-Item (Join-Path 'C:\tree\Animals\' $_) -ItemType Directory -force })
$branch2 = (@('Chair','Cupboard','Sofa','Table','Bed','Dresser') | ForEach-Object { New-Item (Join-Path 'C:\tree\Furniture\' $_) -ItemType Directory -force })
$branch3 = (@('Mercury','Venus','Earth','Mars','Jupiter','Saturn') | ForEach-Object { New-Item (Join-Path 'C:\tree\Planets\' $_) -ItemType Directory -force })
$FolderTree = $branch1 + $branch2 + $branch3
if ($FolderTree) { Write-Host "All sorted out."}
潜在的简化调整
将数组数据类型显式设置为变量。
创建一个函数并在其中构建
New-Item
命令,以在执行时根据传递给函数调用的值接受两个参数,以动态构建要创建的路径。最后,
ForEach-Object
遍历每个数组,显式定义函数调用的第一个参数,并让第二个参数是每个$_
占位符的数组的迭代值(例如_Main "animals" $_;
)。注意:有些人可能也考虑使用简化
%
的ForEach-Object
别名,所以我在下面的示例 PowerShell 中使用了它,因为您特别询问了简化。电源外壳
支持资源
PowerShell 函数
about_Functions
PowerShell 运算符 $( ) @( ) :: &
ForEach-对象
这是@Vomit IT - Chunky Mess Style 的有用方法的替代方法。
这种方法使用哈希表并验证
New-Item
. 它在结构、动态和可读性方面得到了简化。不是单行/更少的代码。没有注释和结果的相同代码: