लिनक्स शेयर में मैप किए गए ड्राइव के साथ काम करते समय, फ़ाइल नाम केस संवेदनशील होते हैं। पावरशेल इसे अपेक्षित रूप से संभालता है, लेकिन मैं आउटपुट को "सी" लोकेल में इस्तेमाल किए गए सॉर्ट ऑर्डर के समान तरीके से सॉर्ट करना चाहता हूं, जिसका मतलब है कि यू +0000 से आरोही क्रम में वर्ण मूल्य द्वारा क्रमबद्ध करना यू +ऑल्टर सॉर्ट-ऑब्जेक्ट व्यवहार
PS > gci Z:\foo | sort -casesensitive
xyz
Xyz
XYZ
yZ
YZ
आउटपुट वांछित: 10FFFF
समस्या उदाहरण देकर स्पष्ट करने (जैसे '0foo' 'फू' और 'फू' से पहले 'बार' और 'बार' 'foo' से पहले आता है से पहले आता है आता है)
XYZ
Xyz
YZ
xyz
yZ
मैंने वर्तमान थ्रेड के संस्कृति चर को [System.Globalization.CultureInfo]::InvariantCulture
पर सेट करने का प्रयास किया , लेकिन मैं कोई सफलता मिली:
$thrd = [Threading.Thread]::CurrentThread
$thrd.CurrentCulture = [Globalization.CultureInfo]::InvariantCulture
$thrd.CurrentUICulture = $thrd.CurrentCulture
Am मैं भी करीब जब मुझे लगता है यह संस्कृति की जानकारी के साथ क्या करना है, या मैं ट्रैक से बाहर वास्तव में दूर कर रहा हूँ? क्या किसी को कोई विचार है कि मुझे कहां से शुरू करना चाहिए? मुझे लगता है कि मुझे अस्थायी रूप से एक संस्कृतिइन्फो इंस्टॉलेशन बनाने की ज़रूरत है जिसमें मेरा इच्छित व्यवहार है, लेकिन जब तक तुलनाइन्फो जाता है, तब तक केवल गेटर्स प्राप्त होते हैं, उल्लेख नहीं किया जाता है कि मैं तुलनात्मक रूप से तुलना करने के बारे में अनिश्चित हूं। सॉर्ट-ऑब्जेक्ट कॉम्पैयर फ़ंक्शन PowerShell फ़ंक्शंस का उपयोग करने की आवश्यकता है। या यह प्रभावी ढंग से खो गया कारण है क्योंकि यह संभव नहीं है?
संपादित
कम से कम, यह पहली बार अपरकेस वर्णों के साथ सॉर्ट करने के लिए, XYZ, XYZ, xyz, YZ, YZ में के रूप में संभव हो सकता है?
'क्रमसंख्या' नेट कि उनके कोड बिंदु मूल्यों पर आधारित वर्ण तुलना में तुलना है (देखें (http://stackoverflow.com/a/492885/2495 भी [InvariantCulture और क्रमसंख्या स्ट्रिंग तुलना के बीच अंतर]))। [मितुल का जवाब] [http://stackoverflow.com/a/18544765/2495) ['[स्ट्रिंगकंपियर] :: साधारण *] (http://msdn.microsoft.com/en-us/library/system.stringcomparer के साथ .ordinal.aspx) सबसे अच्छा विकल्प की तरह दिखता है। –