3

ですべてのコンテナを取得していると思っていましたが $containers = Get-ChildItem -path $Path -recurse | ? {$_.psIscontainer -eq $true}、 のサブディレクトリだけが返されるよう$Pathです。私は本当にとそのサブディレクトリを含めたい$containersと思っています。$Path私はこれを試しました:

$containers = Get-Item -path $Path | ? {$_.psIscontainer -eq $true}
$containers += Get-ChildItem -path $Path -recurse | ? {$_.psIscontainer -eq $true}

しかし、それは私にこれをさせません。使い方Get-ChildItemが間違っていますか、または$PathGet-Item と Get-ChildItem を -recurse と組み合わせて $containers に $subdirectories とその $subdirectories を含めるにはどうすればよいですか?

4

3 に答える 3

5

get-item への最初の呼び出しでは、結果を配列に格納していません (1 つのアイテムしかないため)。これは、行に配列を追加できないことを意味しますget-childitem@()次のように結果をラップして、コンテナ変数を強制的に配列にするだけです。

$containers = @(Get-Item -path $Path | ? {$_.psIscontainer})
$containers += Get-ChildItem -path $Path -recurse | ? {$_.psIscontainer}
于 2012-08-13T20:37:19.933 に答える
1

Get-Item親パスGet-ChildItemを取得し、親の子を取得するために使用します。

$parent = Get-Item -Path $Path
$child = Get-ChildItem -Path $parent -Recurse | Where-Object {$_.PSIsContainer}
$parent,$child
于 2012-08-14T06:27:14.340 に答える
0

以下は私のために働いた:

$containers = Get-ChildItem -path $Path -recurse | Where-object {$_.psIscontainer}

最終的には、の$pathすべてのサブディレクトリになり$pathます。

あなたの例では、あなたは持っていますが$.psIscontainer、そうあるべきです$_.psIscontainer。それはあなたのコマンドの問題でもあったかもしれません。

于 2012-08-13T20:04:34.493 に答える