PowerShell วิธีการลบ symlink ที่เสีย


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 ไม่ได้อยู่บน ms connect

คำตอบ:


8

ลอง:

cmd /c rmdir testlink

cmd ไม่รู้เรื่องเลย rm


ใช้งานได้แล้วตอนนี้ที่จะให้ MS ทราบเกี่ยวกับข้อบกพร่องนี้
เอียน Kelling

ป.ล. mklinkยังไม่มีดังนั้นจึงไม่มีเหตุผลที่จะจัดการกับสิ่งที่แตกหัก ฉันจะเรียกมันว่า "คำขอคุณสมบัติ" มากกว่า "ข้อผิดพลาด" ฉันคิดว่ามันอยู่ในแผนงานแล้ว อย่างไรก็ตามนี่คือลิงค์สำหรับข้อเสนอแนะอย่างไรก็ตามconnect.microsoft.com/PowerShell
หยุดชั่วคราวจนกว่าจะมีประกาศเพิ่มเติม

ขอบคุณ ไม่ทราบว่าฉันพลาดลิงค์เชื่อมต่อ ms มาก่อนได้อย่างไร
Ian Kelling

1

ใช้คำสั่ง mountvol / d

รายการ GUID:

PS C:> Mountvol

แล้วก็

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

แทนที่ GUID ที่เกี่ยวข้องในข้างต้น


ไม่มีตัวบ่งชี้ว่าวอลุ่มใดสอดคล้องกับ symlink ที่ฉันต้องการลบ
เอียน Kelling

I havent พยายามมัน แต่ฉันไม่คิดว่าเรื่องที่ทำงานเพียง 'Mountvol' บนเซิร์ฟเวอร์และมันควรจะแสดงรายการทั้งหมดติดจุดบนไดรฟ์ทั้งหมด (พร้อมด้วย guid ของพวกเขา)
SS64

1

ฉันใช้. net จาก powershell เพื่อทำสิ่งนี้

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

ที่ $ Path เท่ากับเส้นทางของ symlink ของคุณ rmdir ไม่ได้ให้ผลลัพธ์ที่สอดคล้องกันและมักจะกลับข้อผิดพลาดเมื่อเรียกใช้จาก PowerShell โดยไม่คำนึงว่ามันจะประสบความสำเร็จหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.