如何在 Powershell 中删除当前文件夹?

如何在 Powershell 中删除当前文件夹?

我使用Remove-Item -Recurse -Force命令删除大文件夹,因为该方法似乎比使用 Windows 资源管理器快得多,但需要路径。在添加“在此处打开 Powershell”条目进入 Windows 上下文菜单能够删除当前文件夹将使删除大容量目录变得几乎无缝。

Powershell 窗口

答案1

因此,保存当前位置,上移一级,删除已保存的位置。

详细:

$Path = Get-Location | Select -expand Path
Set-Location ..
Remove-Item -LiteralPath $Path -Recurse -Force

按键:

$p = (gl).Path
sl ..
ri -LiteralPath $p -r -Fo

如果您希望轻松使用单个命令,请创建一个具有别名的函数并将其添加到您的配置文件中:

@'
Function Remove-Location {
   $Path = Get-Location | Select -expand Path
   Set-Location ..
   Remove-Item -LiteralPath $Path -Recurse -Force
   Exit    
}
Set-Alias rl Remove-Location
'@ | Add-Content $PROFILE -Append

然后你就可以打开电源外壳到任何文件夹,输入rl,该文件夹将被删除。

答案2

如果您想在控制台中轻松处理此问题,以下命令将当前目录设置为变量,然后更改为父目录并删除上一个目录:

$CurrentDir = Get-Location; cd ..; Remove-Item $CurrentDir -Recurse -Force

如果您更有冒险精神,可以向上下文菜单添加一个条目,这样您就不需要与 shell 进行交互了:

只有当您有信心使用注册表编辑器时才可以继续此操作,否则犯错可能会造成不可逆转的后果

RegEdit.exe从运行框运行。

导航到HKEY_CLASSES_ROOT\Directory\shell\注册表编辑器

在 shell 文件夹上单击“右键”,然后单击“新建”->“项”

输入上下文菜单扩展的新键的名称,在我的情况下我使用了PSMenu。(为了简单起见,我将使用相同的名称)。

在新的注册表项中,您将在右侧看到一个名为的值(Default),双击该值并修改“值数据”为您希望它出现在上下文菜单中的内容(在我的情况下,我已经使用了该内容),Delete folder using PowerShell然后单击“确定”。

接下来,要使命令仅在 Shift + 右键单击​​时可见,您需要创建一个新值。在新键内,右键单击右侧窗格,然后单击“新建”-“字符串值”,将此值命名为,不要Extended填充“值数据”。

不要关闭注册表编辑器,而是跳转到桌面等,现在当您按下 Shift + 右键单击​​时,您应该会看到刚刚创建的新条目,尽管它目前还没有连接到命令。

要将命令添加到上下文条目,请返回注册表编辑器并导航到键“PSMenu”(或任何您命名的键)。右键单击左窗格中的键,然后单击“新建”->“键”并将其命名为command,现在选择此键。同样,您应该在右窗格中只有一个名为的值(Default),双击它并将以下内容粘贴到Value Data

C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Remove-Item -LiteralPath '%L' -Recurse -Force; Exit

单击“确定”,然后退出注册表编辑器,您创建的上下文菜单项现在应该可以工作,并删除您按 Shift + 右键单击​​并选择该条目的文件夹。

相关内容