在PowerShell中使用数组删除文件夹?

时间:2013-03-15 02:53:13

标签: powershell powershell-v2.0 nuget nuget-package

我是PowerShell的新手,并试图习惯于奇怪的语法。我试图删除一个文件夹路径数组。我就是这样做的C#:

string[] folders = { '~/MyFolder/Test123', '~/MyFolder/Test987', '~/MyFolder/Test333' };
foreach (string item in folders) {
  $_.Remove()
}

我将如何在PowerShell中实现此目的?我找到了下面的脚本,但我不确定如何更改以使用预定义的数组。包含的参数实际上来自NuGet:

param($installPath, $toolsPath, $package, $project)

$DTE.Solution.Projects|Select-Object -Expand ProjectItems|Where-Object{$_.Name -eq 'Controllers'}|ForEach-Object{$_.Remove()}

如何将字符串数组合并到此而不是硬编码的“控制器”名称。

2 个答案:

答案 0 :(得分:3)

有很多方法可以做到,但这个很简单......

$folders = @("~/MyFolder/Test123", "~/MyFolder/Test987", "~/MyFolder/Test333")
$folders | Remove-Item 

答案 1 :(得分:2)

这是将字符串数组应用于该过滤器的一种方法:

$ProjectItems = 'Controllers','Robots','Weapons','Bacon'

$DTE.Solution.Projects|
Select-Object -Expand ProjectItems|
Where-Object{$ProjectItems -contains $_.Name}|
ForEach-Object{$_.Remove()}