Powershell 删除给定路径上的项,然后递归删除所有父项

Powershell 删除给定路径上的项,然后递归删除所有父项,powershell,powershell-2.0,Powershell,Powershell 2.0,我有一条路。可以是文件的路径,也可以是目录的路径。 现在我需要删除该文件(如果它是文件的路径),然后检查同一文件夹中是否没有其他文件,同时删除它,然后检查父文件夹,依此类推 如果它是一个目录的路径,请删除目录,然后检查父目录是否为空-同时删除它,然后删除它的父目录,依此类推。我想通过组合这些,可以构建一些内容: Get-ChildItem Split-Path $path -parent Remove-Item 此脚本将删除路径中的顶部文件夹,包括其下的所有内容。$path变量可以指向文

我有一条路。可以是文件的路径,也可以是目录的路径。 现在我需要删除该文件(如果它是文件的路径),然后检查同一文件夹中是否没有其他文件,同时删除它,然后检查父文件夹,依此类推


如果它是一个目录的路径,请删除目录,然后检查父目录是否为空-同时删除它,然后删除它的父目录,依此类推。

我想通过组合这些,可以构建一些内容:

Get-ChildItem
Split-Path $path -parent  
Remove-Item 

此脚本将删除路径中的顶部文件夹,包括其下的所有内容。
$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}
祝你好运