बहुत लंबा पथ नाम सहित आकार के अनुसार फ़ोल्डर का आकार प्राप्त करना


1

कार्य: C: \ temp, (शीर्ष / आकार द्वारा क्रमबद्ध) में मुख्य फ़ोल्डर प्रदर्शित करें, c: \ temp फ़ोल्डर में इसके अंदर बहुत सारे उप फ़ोल्डर हैं, लंबे पथ भी।

पसंद

c:\temp
c:\temp\folder1
c:\temp\folder1\sub_folder
c:\temp\folder2
c:\temp\folder2\sub_folder_more_folder_long_folders_files_names_as_well

मैं इस तरह से फ़ोल्डर्स की सूची प्रदर्शित करना चाहता हूं

Name     Type        Size
folder1  Directory   10
folder2  Directory   12

मैं आकार के साथ-साथ फ़ोल्डर नाम प्राप्त करने के लिए निम्नलिखित पॉवरशेल स्क्रिप्ट का उपयोग कर रहा हूं, आकार द्वारा क्रमबद्ध, और अंत में केवल शीर्ष 20 फ़ोल्डर्स प्रदर्शित करें।

ls c:\temp | select Name,
    @{
        Name="Type";Expression={
            if($_.psIsContainer)
            {
                "Directory"
            }
            else
            {
                "File"
            }
        }
    },
    @{
        Name="Size(GB)";
        Expression=
        {
            [Math]::Round($(ls $_.FullName -recurse| measure Length -sum).Sum/1GB, 3)
        }
    } | sort -property "Size(GB)" -desc | Select -First 20

यह मुझे परिणाम देता है,

    USER1          Directory                       11.166
    USER2          Directory                       2.917
    USER3          Directory                       0.042

The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.The specified path, file name, or both are too long. 

जैसा कि मैं देख सकता हूं कि यह लंबे पथ नामों की त्रुटि देता है, मैं इस मुद्दे को कैसे दूर कर सकता हूं?


क्या आपने उपयोग करने की कोशिश की .ShortName के बजाय .FullName...? BTW भले ही यह अब काम करता है, और गहरा यह अभी भी हो सकता है।
Hastur

अगर मैंने इस्तेमाल किया .ShortName , सभी फ़ोल्डर्स समान आकार दिखाते हैं
Syed Jahanzaib

आप जो करने की कोशिश कर रहे हैं वह वास्तव में लिनक्स के समान है du -hs | sort -n। आप नेट पर पावरशेल में कुछ कार्यान्वयन देख सकते हैं। उदाहरण के लिए इस ब्लॉग पेज पर या इसमें उत्तर । जांचें कि क्या आप अपनी समस्या को दूर करते हैं और याद रखें कि आप हमेशा स्थापित कर सकते हैं खिड़कियों के लिए coreutils
Hastur

जवाबों:


0

आपके पास शायद ऐसे रास्ते नहीं होने चाहिए जो गहरे हों। विभिन्न अनुप्रयोग उन्हें एक्सेस करने में सक्षम नहीं होंगे या उक्त आवेदन के कार्यान्वयन में कमी आएगी।

कहा कि आप देख सकते हैं इस सवाल और अधिक विशेष रूप से में \\? नोटेशन जैसा यहाँ वर्णित है और जब भी आप उस के साथ PS का उपयोग कर सीमा को दरकिनार कर सकते हैं की जाँच करें।


लक्ष्य केवल नाम के साथ शीर्ष फ़ोल्डर आकार को सूचीबद्ध करना है। (आकार के अनुसार), यह मुख्य फ़ोल्डर d: \ users में साझा किया गया है दुर्भाग्य से उपयोगकर्ताओं को छोटे नामों का उपयोग करने के लिए मजबूर करना मुश्किल है, क्योंकि उनके पास बहुत सारे शोध पत्र हैं और आसान टैगिंग के लिए वे लंबे अक्षरों का उपयोग करते हैं।
Syed Jahanzaib

यदि वे विंडोज का उपयोग कर रहे हैं, तो यह संभावना है कि वे फाइलें विभिन्न अनुप्रयोगों में उनके लिए पहले से ही अप्राप्य हैं, लेकिन जैसा कि मैं उम्मीद कर रहा था कि आप आसानी से इसे बदल नहीं पाएंगे, मैंने दूसरी सूचना को भी शामिल किया। इसमें वास्तव में आपके द्वारा उपयोग किए जाने वाले सभी उपकरण शामिल होने चाहिए, आखिरकार इसमें "ठीक से नहीं" समर्थित रजिस्ट्री फिक्स भी शामिल है।
Seth

निम्नलिखित एक तरह की रिपोर्ट है जो मैं अपने उपयोगकर्ताओं के लिए चाहता था। [ aacable.files.wordpress.com/2017/02/1.png ]
Syed Jahanzaib

लिनक्स संचालित पॉवरशेल? यदि आप लोटस का उपयोग कर रहे हैं तो उपयोग क्यों नहीं करें] रिपोर्टिंग में निर्माण] ( ibm.com/support/knowledgecenter/en/SSKTMJ_8.0.1/... )? लेकिन फिर भी ... क्या आपने सिर्फ एक का उपयोग करने की कोशिश की \\? प्रवेश बिंदु के रूप में पथ या आप नहीं थे? क्या आपको अभी भी वही त्रुटि मिली या नहीं? मैं वास्तव में इस बात की परवाह नहीं करता कि आप किस तरह की रिपोर्ट चाहते हैं क्योंकि मैंने केवल मार्ग सीमा को पार करने का एक तरीका बताया है।
Seth

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