删除 Windows 中的符号链接

问题描述 投票:0回答:3

我想删除一些符号链接(文件夹)。我试过了

(Get-Item "C:\Users\MIKROEG\AppData\Roaming\Microsoft\Windows\Network Shortcuts\*.*").Delete()

[string]$Nutzerpfad = "$env:APPDATA"
[string]$Destination = "$Nutzerpfad\Microsoft\Windows\Network Shortcuts\*.*"
[System.IO.Directory]::Delete($Destination, $true)

cmd /s rmdir C:\Users\MIKROEG\AppData\Roaming\Microsoft\Windows\Network Shortcuts\Test2

$alleordneranzeigen=Get-ChildItem -Path $Destination -Directory
foreach($ordner in $alleordneranzeigen)
{ Remove-Item -Path $ordner.FullName
}

但没有任何效果。 最后一个要删除递归。

有人可以帮助我吗?

[墨水][1]

windows powershell shortcut
3个回答
3
投票

通常在命令行中使用

mklink /D mysymlink C:\myfiles\somefile
创建的目录符号链接可以像使用

删除目录一样删除

rd <mysymlink>

(这相当于命令的长形式,

rmdir <mysymlink>
。事实上,您确实尝试了
rmdir
,但由于未加引号的路径中存在空格字符,这会失败:
cmd /s rmdir C:\Users\MIKROEG\AppData\Roaming\Microsoft\Windows\Network Shortcuts\Test2
。)

您可以通过在文件资源管理器中制作目录的备份副本并在目录符号链接上使用

rd
命令来演示这一点。您将看到符号链接已被删除,并且原始目录及其内容仍然存在。

有关尝试其他方法的警告: 无法使用 del 在命令行中像删除

文件
那样删除目录符号链接。这样做会删除目录中的文件!


0
投票

请务必仔细检查您要删除的内容:

# Only Show: SymbolicLink
(Get-ChildItem . -Force -Recurse | Where-Object { $_.LinkType -eq "SymbolicLink" -and $_.Attributes -match "ReparsePoint" }) | Select FullName, LinkType, Target

# WARNING: Delete those
(Get-ChildItem . -Force -Recurse | Where-Object { $_.LinkType -eq "SymbolicLink" -and $_.Attributes -match "ReparsePoint" }) | Select $_.FullName | | Remove-Item -Force

-1
投票

为了正确删除符号链接使用

mklink /d

您只需删除 Windows 资源管理器内的符号链接即可。这样你甚至不需要费心使用 powershell。

但是:

如果您想使用 powershell 删除链接,请勿使用

rmdir

而是像这样定位指定文件夹:

cmd /c rmdir .\目标

© www.soinside.com 2019 - 2024. All rights reserved.