पॉवरशेल में बूलियन शाब्दिक


151

पॉवरशेल में बूलियन शाब्दिक क्या हैं?


23
यह एक अच्छा सवाल है और इसने मुझ से एक उत्थान प्राप्त किया। मैं हमेशा एसओ प्रश्नों को बढ़ाता हूं जो मेरी Google खोजों में दिखाई देते हैं और मेरी मदद करते हैं। उन 4 डाउनवोटर्स को वास्तव में इस तरह के आसान, प्रवेश स्तर के प्रश्नों के लिए अपने दृष्टिकोण पर पुनर्विचार करना चाहिए।
ulidtko

जवाबों:


172

$trueऔर $false

हालांकि वे लगातार हैं। बुलियन के लिए कोई भाषा-स्तर के शाब्दिक नहीं हैं।

जहाँ आप उन्हें जरूरत के आधार पर आप भी कुछ भी उपयोग कर सकते हैं कि coerces एक बूलियन मान के लिए, विधि कॉल कि बूलियन की आवश्यकता होती है (और कोई परस्पर विरोधी अधिभार है), या सशर्त बयान में बूलियन होना करने के लिए प्रकार है अगर, उदाहरण के लिए। उदाहरण के लिए, अधिकांश गैर-अशक्त वस्तुएं सत्य हैं। null, खाली तार, खाली सरणियाँ और संख्या 0झूठी हैं।


18

[bool]1और [bool]0भी काम करता है।


3
सटीक होने के लिए, आप बहुत सी चीजों का उपयोग कर सकते हैं जो संदर्भों में बूलियन के लिए ज़ब्त की जा सकती हैं जहां रूपांतरण हो रहा है, उदाहरण के लिए एक सशर्त विवरण में। और उन मामलों में आपको बिल्कुल कास्ट करने की आवश्यकता नहीं है। if ($s.Length) { ... }उदाहरण के लिए, पूरी तरह से ठीक है।
जॉय

5

पहले से मौजूद उत्तरों के लिए अधिक जानकारी जोड़ने के लिए : बूलियन शाब्दिक $trueऔर $falseयह भी काम करता है जब PowerShell (PS) स्क्रिप्ट के लिए कमांड लाइन मापदंडों के रूप में उपयोग किया जाता है। निम्न पीएस स्क्रिप्ट के लिए जिसे एक फ़ाइल में संग्रहीत किया गया है जिसका नाम है installmyapp.ps1:

param (
    [bool]$cleanuprequired
)

echo "Batch file starting execution."

अब अगर मुझे पीएस कमांड लाइन से इस पीएस फाइल को मंगाना है, तो यह है कि मैं यह कैसे कर सकता हूं:

installmyapp.ps1 -cleanuprequired $true

या

installmyapp.ps1 -cleanuprequired 1

यहाँ 1और $trueसमतुल्य हैं। इसके अलावा, 0और $falseबराबर हैं।

नोट : कभी यह उम्मीद न करें कि स्ट्रिंग शाब्दिक trueस्वचालित रूप से बूलियन में परिवर्तित हो सकती है। उदाहरण के लिए, यदि मैं नीचे कमांड चलाता हूं:

installmyapp.ps1 -cleanuprequired true

यह निम्न त्रुटि के साथ स्क्रिप्ट को निष्पादित करने में विफल रहता है:

पैरामीटर 'क्लीनअप-एक्वायर्ड' पर तर्क परिवर्तन को संसाधित नहीं कर सकता। "System.Boolean" टाइप करने के लिए "System.String" मान परिवर्तित नहीं कर सकता। बूलियन पैरामीटर केवल बूलियन मान और संख्या को स्वीकार करते हैं, जैसे $ ट्रू, $ गलत, 1 या 0।

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