कैसे टूटे हुए सिमलिंक को हटाने के लिए शक्तियां


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 जहां भी लिंक इंगित कर रहा है, उसके अंदर वस्तुओं को हटाने का प्रयास करता है। मैं कमांड लाइन का उपयोग करके इस चीज को कैसे हटा सकता हूं? मैं पॉवरशेल / शेल बग कहां रिपोर्ट कर सकता हूं? ऐसा लगता है कि पावरशेल एमएस कनेक्ट पर नहीं है।

जवाबों:


8

प्रयत्न:

cmd /c rmdir testlink

cmd के बारे में नहीं जानता rm


काम करता है, अब एमएस को इस बग के बारे में कहां पता चल सकता है?
इयान केलिंग सेप

PS के पास mklinkअभी तक नहीं है इसलिए यह समझ में आता है कि यह नहीं जानता कि टूटे हुए लोगों से कैसे निपटें। मैं इसे "बग" के बजाय "सुविधा अनुरोध" कहूंगा। मैं कल्पना करता हूं कि यह पहले से ही रोडमैप पर है। हालांकि, प्रतिक्रिया के लिए एक लिंक यहां दिया गया है: connect.microsoft.com/PowerShell
अगली सूचना तक

धन्यवाद। पता नहीं कैसे मैं इससे पहले एमएस कनेक्ट लिंक याद किया।
इयान केलिंग सेप

1

माउंटवोल / डी कमांड का उपयोग करें

गाइड की सूची:

पीएस सी:> माउंटवोल

फिर

PS C:> माउंटवोल \ _? वॉल्यूम {2eca078d-5cbc-43d3-aff8-7e8511f60d0e} \ / d

उपरोक्त में प्रासंगिक GUID की जगह


इस बात का कोई संकेत नहीं है कि किस वॉल्यूम को मैं हटाए जाने वाले टूटे हुए सिमलिंक से मेल खाता हूं।
इयान केलिंग सेप

मैंने इसे अभी तक आज़माया है, लेकिन मुझे नहीं लगता कि यह मायने रखता है, बस सर्वर पर 'माउंटवोल' चलाएं और इसे सभी संस्करणों पर सभी माउंट बिंदुओं को सूचीबद्ध करना चाहिए (उनके
GUID

1

मैं ऐसा करने के लिए। शक्तियां से .net का उपयोग करता हूं

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

जहाँ $ पाथ आपके सिम्कलिन के पथ के बराबर है। rmdir लगातार परिणाम प्रदान नहीं करता है और पावरशेल से चलने पर लगभग हमेशा एक त्रुटि देगा, भले ही वह सफल हो या न हो।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.