powershell kırık symlink nasıl kaldırılır


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

Hata, rm -force öğesinin, bağlantının işaret ettiği her yerde öğeleri kaldırmaya çalışmasıyla ilgilidir. Komut satırını kullanarak bu şeyi nasıl kaldırabilirim? Powershell / kabuk hatalarını nerede bildirebilirim? Görünüşe göre powershell ms connect üzerinde değil.

Yanıtlar:


8

Deneyin:

cmd /c rmdir testlink

cmd hakkında bilmiyor rm


Çalışıyor, şimdi MS bu hatayı nereden bilebilir?
Ian Kelling

PS mklinkhenüz sahip değil, bu yüzden kırık olanlarla nasıl başa çıkacağını bilmemesi mantıklı. Buna "hata" yerine "özellik isteği" derdim. Zaten yol haritasında olduğunu hayal ediyorum. Bununla birlikte, geri bildirim için bir bağlantı: connect.microsoft.com/PowerShell
sonraki duyuruya kadar duraklatıldı.

Teşekkürler. Daha önce ms bağlantı bağlantısını nasıl kaçırdığımı bilmiyorum.
Ian Kelling

1

Mountvol / d komutunu kullanma

GUID'yi listeleyin:

PS C:> Mountvol

sonra

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

yukarıdaki ilgili GUID'in değiştirilmesi


Hangi birimin silmek istediğim bozuk symlink'e karşılık geldiğine dair bir gösterge yok.
Ian Kelling

Henüz denemedim, ama önemli olduğunu düşünmüyorum, sadece sunucuda 'mountvol' çalıştırın ve tüm ciltlerde (GUID'leriyle birlikte) tüm bağlama noktalarını listelemelidir
SS64

1

Bunu yapmak için powershell'den .net kullanıyorum

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

$ Path, sembol bağlantınızın yoluna eşittir. rmdir tutarlı bir sonuç vermez ve başarılı olup olmadığına bakılmaksızın powershell'den çalıştırıldığında neredeyse her zaman bir hata döndürür.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.