powershell como remover o symlink quebrado

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:\>

O erro está relacionado ao fato de que rm -force tenta remover itens dentro de onde quer que o link esteja apontando. Como posso remover essa coisa usando a linha de comando? Onde posso reportar bugs do shell / shell? Parece que o powershell não está em ms connect.

    
por Ian Kelling 22.09.2009 / 19:35

3 respostas

8

Tente:

cmd /c rmdir testlink

cmd não sabe sobre rm

    
por 22.09.2009 / 22:00
1

Use o comando mountvol / d

Listar o GUID:

PS C: > Mountvol

então

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

substituindo o GUID relevante acima

    
por 23.09.2009 / 01:55
1

Eu uso o .net do powershell para fazer isso

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

Onde $ Path é igual ao caminho do seu symlink. O rmdir não fornece resultados consistentes e quase sempre retornará um erro quando executado a partir do powershell, independentemente de ter sido bem-sucedido ou não.

    
por 01.12.2011 / 16:45

Tags