私にはパスがあります。ファイルへのパスでも、ディレクトリへのパスでもかまいません。ここで、ファイルを削除し (ファイルへのパスの場合)、同じフォルダーにファイルがないかどうかを確認し、それも削除してから、親フォルダーなどを確認する必要があります。
ディレクトリへのパスである場合は、ディレクトリを削除してから、親が空かどうかを確認します-それも削除し、次にその親などを削除します。
私にはパスがあります。ファイルへのパスでも、ディレクトリへのパスでもかまいません。ここで、ファイルを削除し (ファイルへのパスの場合)、同じフォルダーにファイルがないかどうかを確認し、それも削除してから、親フォルダーなどを確認する必要があります。
ディレクトリへのパスである場合は、ディレクトリを削除してから、親が空かどうかを確認します-それも削除し、次にその親などを削除します。
このスクリプトは、その下のすべてを含むパスの最上位フォルダーを削除します。この$path
変数は、ファイルまたはディレクトリのいずれかを指すことができます。
$path = "D:\temp\temp2\file.txt"
$parts = $path.Split([System.IO.Path]::DirectorySeparatorChar)
# The following will remove D:\temp and everything in it
Remove-Item (Join-Path $parts[0] $parts[1]) -Recurse
あなたがまだ仕事をしていないなら、これはあなたを助けるかもしれません:
これを使用して、子アイテムがフォルダーであるかどうかを確認できます
| ? {$_.PSIsContainer}
これと組み合わせると、空のフォルダーかどうかがわかります
| ? {$_.GetFiles().Count -eq 0}
幸運を!
これらを組み合わせて何かを構築すると思います:
Get-ChildItem
Split-Path $path -parent
Remove-Item