1

私は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()}

ハードコードされた「Controllers」名の代わりに、これに文字列配列を組み込むにはどうすればよいですか。

4

2 に答える 2

3

それを行うには多くの方法がありますが、これは非常に簡単です...

$folders = @("~/MyFolder/Test123", "~/MyFolder/Test987", "~/MyFolder/Test333")
$folders | Remove-Item 
于 2013-03-15T03:32:53.857 に答える
2

そのフィルターに文字列配列を適用する1つの方法は次のとおりです。

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

$DTE.Solution.Projects|
Select-Object -Expand ProjectItems|
Where-Object{$ProjectItems -contains $_.Name}|
ForEach-Object{$_.Remove()}
于 2013-03-15T03:38:05.590 に答える