壊れたシンボリックリンクを削除する方法


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がリンクが指している場所の内部にあるアイテムを削除しようとするという事実に関連しています。コマンドラインを使用してこれを削除するにはどうすればよいですか?powershell / shellバグはどこに報告できますか?powershellがms接続していないようです。

回答:


8

試してください:

cmd /c rmdir testlink

cmd 知らない rm


動作しますが、MSにこのバグについてどこで通知できますか?
イアンケリング

PSはまだ持ってmklinkいないので、壊れたものに対処する方法を知らないのは理にかなっています。「バグ」ではなく「機能のリクエスト」と呼んでいます。私はそれがすでにロードマップ上にあると想像します。ただし、フィードバックのリンクは次のとおり
通知があるまで一時停止します。

ありがとう。以前にms connectリンクを逃した方法がわかりません。
イアンケリング

1

mountvol / dコマンドを使用する

GUIDを一覧表示します。

PS C:> Mountvol

その後

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

上記の関連するGUIDを置き換える


削除したい壊れたシンボリックリンクに対応するボリュームを示すものはありません。
イアンケリング

まだ試していませんが、問題はないと思います。サーバーで「mountvol」を実行すると、すべてのボリュームのすべてのマウントポイントが(GUIDとともに)リストされます
SS64

1

私はこれを行うためにPowerShellから.NETを使用しています

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

ここで、$ Pathはシンボリックリンクのパスと同じです。rmdirは一貫した結果を提供せず、成功したかどうかにかかわらず、Powershellから実行するとほとんどの場合エラーを返します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.