トップ回答者
フォルダの階層の数を調べるコマンドを教えてください

質問
回答
-
チャブーンです。
この件ですが、「ディレクトリの階層をカウントする」コマンドはありません。ですから、PowerShellで「計算」するしかないと思います。しかたないので考えると、ディレクトリ区分け記号の「\」(バックスラッシュ・円マーク)について、ディレクトリオブジェクトのフルパス(FullName)から抽出して数えると、わかると思います。
したの例は「ローカルパス」に関して、ルートフォルダーに対して「最大階層数」を計算するスクリプトです。共有フォルダーをホストするサーバーでそのまま使えばよいと思いますが、リモートでどうにかしたい、ということなら、New-PSDriveで共有フォルダーをマウントして、フルパス相当のプロパティに対して同じリクツで対応することになると思います。
$RootDirectory = "C:\HogeHoge\HareHare" IF ($RootDirectory.EndsWith("`\")) { $RootDirectory = $RootDirectory.Substring(0,($RootDirectory.length - 1)) } $Directories = Get-ChildItem $RootDirectory -recurse | Where {$_.PSIsContainer -eq $True} $NumberOfDirectoryLevels = @() Foreach ($Directory in $Directories) { $ChildDirectory = ($Directory.FullName).Substring($RootDirectory.length,(($Directory.FullName).Length - $RootDirectory.length)) $NumberOfDirectoryLevel = New-Object PSObject -Property @{ NumberOfDirectoryLevel = $ChildDirectory.Length - ($ChildDirectory.Replace("`\","")).length } $NumberOfDirectoryLevels += $NumberOfDirectoryLevel } ($NumberOfDirectoryLevels | Measure-Object -property NumberOfDirectoryLevel -Maximum).Maximum
https://www.reddit.com/r/sysadmin/comments/13ifi2/powershell_how_to_create_a_array_with_mutilple/
http://blog.powershell-from.jp/?p=247フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。
- 回答としてマーク Sophie_55 2019年9月2日 6:11
すべての返信
-
チャブーンです。
この件ですが、「ディレクトリの階層をカウントする」コマンドはありません。ですから、PowerShellで「計算」するしかないと思います。しかたないので考えると、ディレクトリ区分け記号の「\」(バックスラッシュ・円マーク)について、ディレクトリオブジェクトのフルパス(FullName)から抽出して数えると、わかると思います。
したの例は「ローカルパス」に関して、ルートフォルダーに対して「最大階層数」を計算するスクリプトです。共有フォルダーをホストするサーバーでそのまま使えばよいと思いますが、リモートでどうにかしたい、ということなら、New-PSDriveで共有フォルダーをマウントして、フルパス相当のプロパティに対して同じリクツで対応することになると思います。
$RootDirectory = "C:\HogeHoge\HareHare" IF ($RootDirectory.EndsWith("`\")) { $RootDirectory = $RootDirectory.Substring(0,($RootDirectory.length - 1)) } $Directories = Get-ChildItem $RootDirectory -recurse | Where {$_.PSIsContainer -eq $True} $NumberOfDirectoryLevels = @() Foreach ($Directory in $Directories) { $ChildDirectory = ($Directory.FullName).Substring($RootDirectory.length,(($Directory.FullName).Length - $RootDirectory.length)) $NumberOfDirectoryLevel = New-Object PSObject -Property @{ NumberOfDirectoryLevel = $ChildDirectory.Length - ($ChildDirectory.Replace("`\","")).length } $NumberOfDirectoryLevels += $NumberOfDirectoryLevel } ($NumberOfDirectoryLevels | Measure-Object -property NumberOfDirectoryLevel -Maximum).Maximum
https://www.reddit.com/r/sysadmin/comments/13ifi2/powershell_how_to_create_a_array_with_mutilple/
http://blog.powershell-from.jp/?p=247フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。
- 回答としてマーク Sophie_55 2019年9月2日 6:11