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.
Пытаться:
cmd /c rmdir testlink
cmd
не знает о rm
Используйте команду mountvol / d
Перечислите GUID:
PS C:> Mountvol
затем
PS C:> mountvol \? \ Том {2eca078d-5cbc-43d3-aff8-7e8511f60d0e} \ / d
заменив соответствующий GUID в приведенном выше
Я использую .net из PowerShell для этого
[System.IO.Directory]::Delete($Path,$true)
Где $ Path равен пути вашей символической ссылки. rmdir не обеспечивает согласованного результата и почти всегда возвращает ошибку при запуске из PowerShell, независимо от того, был он успешным или нет.