पॉवरशेल में बूलियन शाब्दिक क्या हैं?
पॉवरशेल में बूलियन शाब्दिक क्या हैं?
जवाबों:
$true
और $false
।
हालांकि वे लगातार हैं। बुलियन के लिए कोई भाषा-स्तर के शाब्दिक नहीं हैं।
जहाँ आप उन्हें जरूरत के आधार पर आप भी कुछ भी उपयोग कर सकते हैं कि coerces एक बूलियन मान के लिए, विधि कॉल कि बूलियन की आवश्यकता होती है (और कोई परस्पर विरोधी अधिभार है), या सशर्त बयान में बूलियन होना करने के लिए प्रकार है अगर, उदाहरण के लिए। उदाहरण के लिए, अधिकांश गैर-अशक्त वस्तुएं सत्य हैं। null
, खाली तार, खाली सरणियाँ और संख्या 0
झूठी हैं।
[bool]1
और [bool]0
भी काम करता है।
if ($s.Length) { ... }
उदाहरण के लिए, पूरी तरह से ठीक है।
पहले से मौजूद उत्तरों के लिए अधिक जानकारी जोड़ने के लिए : बूलियन शाब्दिक $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।