我想删除一些符号链接(文件夹)。我试过了
(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]
通常在命令行中使用
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
在命令行中像删除
文件那样删除目录符号链接。这样做会删除目录中的文件!
请务必仔细检查您要删除的内容:
# 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
为了正确删除符号链接使用
mklink /d
您只需删除 Windows 资源管理器内的符号链接即可。这样你甚至不需要费心使用 powershell。
但是:
如果您想使用 powershell 删除链接,请勿使用
rmdir
而是像这样定位指定文件夹:
cmd /c rmdir .\目标