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


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.