पॉवरशेल: 145 103
मूल
हटाए गए त्रुटि से परिवर्तन प्रति प्रश्नकर्ता की टिप्पणी से बुझते हैं ।
कोड:
"$([array]::IndexOf(($s=(read-host)-split''|?{$_}),($x=$s|?{$_%2-eq0}|?{$_-gt0}|sort|select -f 1))),$x"
पूर्वाभ्यास:
"... "उद्धरण के भीतर सब कुछ आउटपुट में शामिल किया जाएगा।
$(... )कोष्ठक के बीच सब कुछ एक आदेश के रूप में माना जाएगा, और उस कोड के आउटपुट को कमांड के बजाय स्वयं शामिल किया जाएगा।
[array]::IndexOf(... )इसका उपयोग एरे के साथ एक तत्व का सूचकांक प्राप्त करने के लिए किया जाता है। इसका पहला पैरामीटर खोज की जाने वाली सरणी वस्तु है। दूसरा पैरामीटर पाया जाने वाला ऑब्जेक्ट है। यह केवल पहले मिलान तत्व के सूचकांक को आउटपुट करता है। मैंने IndexOfसीधे तौर पर एक विधि का उपयोग करने की कोशिश की , जिसके विरुद्ध सीधे $s(जैसे: $s.IndexOf($x)लेकिन यह किसी कारण से मुझे अभी तक पता नहीं चला है - यह दावा करता है कि यह विधि उस वस्तु में मौजूद नहीं है।
(... )कोष्ठक के भीतर अभिव्यक्ति के लिए पहला पैरामीटर होगा IndexOf।
$s= $ s उपयोगकर्ता इनपुट को संग्रहीत करने के लिए एक चर होगा।
(read-host)-split'' उपयोगकर्ता इनपुट प्राप्त करता है, और इसे वर्णों की एक सरणी में विभाजित करता है। `
|?{$_}अतिरिक्त खाली सरणी तत्वों को फ़िल्टर करता है जो द्वारा उत्पन्न होते हैं -split''।
,(... )कोष्ठक के भीतर अभिव्यक्ति के लिए दूसरा पैरामीटर होगा IndexOf।
$x= $ s उपयोगकर्ता इनपुट से निम्नतम अंक को संग्रहीत करने के लिए एक चर होगा।
$s|?{$_%2-eq0} $ S से सम संख्याओं को खींचता है।
|?{$_-gt0} शून्य को अमान्य करता है।
|sort शेष वस्तुओं को सॉर्ट करता है, डिफ़ॉल्ट क्रम आरोही है।
|select -f 1 पहली वस्तु को उठाता है, जो अब तक का सबसे कम अंक होगा।
,$xउपरोक्त कोड हमारे निम्नतम अंक के सूचकांक को भी आउटपुट करेगा। यह एक अल्पविराम जोड़ता है, और फिर अंक को स्वयं आउटपुट करता है।
टिप्पणियाँ:
यह शायद नियम # 4 थोड़ा सा खींच रहा है। यदि कोई अंक भी नहीं है, तो आउटपुट में दूसरा नंबर शामिल नहीं होगा।
इसके अलावा, यदि इनपुट में गैर-संख्यात्मक तत्व शामिल हैं, तो यह कुछ गैर-समाप्ति त्रुटियों को फेंक देगा। स्क्रिप्ट अभी भी चलेगी और उचित आउटपुट देगी, लेकिन आप इसे चलाने $ErrorActionPreferenceसे 'SilentlyContinue'पहले सेट करना चाह सकते हैं ।