いくつかのフォルダの内容を削除しようとしています。 Get-ChildItem
は、以下のようなオブジェクト受け取るので、Powershell Select-Object値の配列を取得する方法
$Config.SubPaths | Select-Object { Join-Path $Config.InstallPath $_ } | Get-ChildItem
しかし、それは動作しません:
@{ Join-Path $Config.InstallPath $_ =C:\Program Files\App\www\app1}
エラー
$Config = @{
InstallPath = 'C:\Program Files\App'
SubPaths = @('www\app1', 'www\app2', 'www\app3')
}
そして、ここでは内容を取得するためのコードです:私が持っているもの :
Get-ChildItem : Cannot find drive. A drive with the name '@{ Join-Path $Config.InstallPath $_ =C' does not exist.
At line:1 char:85
+ ... elect-Object { Join-Path $Config.InstallPath $_ } | Get-ChildItem
+ ~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (@{ Join-Path $C...stallPath $_ =D:String) [Get-ChildItem], DriveNotFoun
dException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Select-Object
の結果を文字列の単純な配列に変換するにはどうすればよいですか?コードを改善するための他の方法はありますか?
'$ Config.SubPathsを作っているし、
Get-ChildItem
は、新しいオブジェクトのパスプロパティにバインドする必要があります。しかし、タイトルに質問に答えるために、あなたはこれを行っている可能性ForEach-Object {結合パス$ Config.InstallPath $ _} | Get-ChildItem' – Matt