як видалити розбиту символьну посилання


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 намагається видалити елементи всередині, куди вказує посилання. Як я можу видалити цю річ за допомогою командного рядка? Де я можу повідомити про помилки powerhell / shell? Здається, паттерн не перебуває на з’єднанні мс.

Відповіді:


8

Спробуйте:

cmd /c rmdir testlink

cmd не знає про rm


Працює, тепер де можна повідомити MS про цю помилку?
— Ян Келінг

PS ще не має, mklinkтому має сенс, що він не знає, як боротися зі зламаними. Я б назвав це "запитом на функції", а не "помилкою". Я б міг уявити, що це вже на дорожній карті. Ось посилання для зворотного зв’язку, однак: connect.microsoft.com/PowerShell
— Призупинено до подальшого повідомлення.

Дякую. Не знаю, як я раніше пропустив посилання для підключення мс.
— Ян Келінг

1

Використовуйте команду mountvol / d

Список GUID:

PS C:> Маунтвол

тоді

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

заміна відповідного GUID у вищезазначеному


Немає вказівки, який об'єм відповідає розірваному символьному посиланню, яке я хочу видалити.
— Ян Келінг

Я ще не пробував цього, але не думаю, що це має значення, просто запустіть 'mountvol' на сервері, і він повинен перелічити всі точки монтажу на всіх томах (разом з їх
— GUIDs

1

Для цього я використовую .net від powershell

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

Де $ Шлях дорівнює шляху вашого симпосилання. rmdir не дає послідовного результату і майже завжди поверне помилку під час запуску з powerhell, незалежно від того, був він успішним чи ні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.