Powershell如何删除损坏的符号链接


9
PS C:\> cmd /c mklink /d testlink non-existent-dir
symbolic link created for testlink <<===>> non-existent-dir
PS C:\> rm .\testlink
Remove-Item : C:\testlink is a NTFS junction point. Use the Force parameter to delete or modify.
At line:1 char:3
+ rm <<<<  .\testlink
    + CategoryInfo          : WriteError: (C:\testlink:DirectoryInfo) [Remove-Item], IOException
    + FullyQualifiedErrorId : DirectoryNotEmpty,Microsoft.PowerShell.Commands.RemoveItemCommand

PS C:\> rm -force .\testlink
Remove-Item : Could not find a part of the path 'C:\testlink'.
At line:1 char:3
+ rm <<<<  -force .\testlink
    + CategoryInfo          : WriteError: (C:\testlink:String) [Remove-Item], DirectoryNotFoundException
    + FullyQualifiedErrorId : RemoveItemIOError,Microsoft.PowerShell.Commands.RemoveItemCommand

PS C:\>

该错误与以下事实有关:rm -force尝试删除链接指向的任何位置内的项目。如何使用命令行删除此内容?在哪里可以报告Powershell / Shell错误?看来Powershell不在ms connect上。

Answers:


8

尝试:

cmd /c rmdir testlink

cmd 不知道 rm


有效,现在哪里可以让MS知道此错误了?
伊恩·凯灵

PS还没有,mklink所以有意义的是它不知道如何处理损坏的PS 。我将其称为“功能请求”,而不是“错误”。我想它已经在路线图上了。但是,这里有一个反馈链接:connect.microsoft.com/PowerShell
已暂停,直到另行通知。

谢谢。不知道我以前怎么错过ms connect链接。
伊恩·凯灵

1

使用mountvol / d命令

列出GUID:

PS C:> Mountvol

然后

PS C:> mountvol \?\ Volume {2eca078d-5cbc-43d3-aff8-7e8511f60d0e} \ / d

替换上面的相关GUID


没有迹象表明哪个卷对应于我要删除的断开的符号链接。
伊恩·凯灵

我还没有尝试过,但是我不认为这很重要,只需在服务器上运行“ mountvol”,它就应该列出所有卷上的所有安装点(及其GUID)
SS64,09年

1

我使用Powershell中的.net来执行此操作

[System.IO.Directory]::Delete($Path,$true)

其中$ Path等于符号链接的路径。rmdir无法提供一致的结果,并且从powershell运行时几乎总是返回错误,无论它是否成功。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.