खोज…


परिचय

स्वचालित चर को Windows PowerShell द्वारा बनाया और बनाए रखा जाता है। एक पुस्तक में किसी भी नाम के बारे में एक चर को कॉल करने की क्षमता है; इसका एकमात्र अपवाद वे चर हैं जो पहले से ही PowerShell द्वारा प्रबंधित किए जा रहे हैं। ये चर, बिना किसी संदेह के, कार्यों के बगल में PowerShell में आपके द्वारा उपयोग की जाने वाली सबसे दोहरावदार वस्तुएं होंगी (जैसे $? - पिछले ऑपरेशन की सफलता / विफलता की स्थिति को इंगित करता है)

वाक्य - विन्यास

  • $$ - सत्र द्वारा प्राप्त अंतिम पंक्ति में अंतिम टोकन शामिल है।
  • $^ - सत्र द्वारा प्राप्त अंतिम पंक्ति में पहला टोकन शामिल है।
  • $? - अंतिम ऑपरेशन की निष्पादन स्थिति शामिल है।
  • $_ - पाइपलाइन में वर्तमान वस्तु को समाहित करता है

$ पीआईडी

वर्तमान होस्टिंग प्रक्रिया की प्रक्रिया आईडी शामिल है।

PS C:\> $pid
26080

बूलियन मूल्य

$true और $false दो चर हैं जो तार्किक TRUE और FALSE का प्रतिनिधित्व करते हैं।

ध्यान दें कि आपको पहले अक्षर के रूप में डॉलर चिह्न निर्दिष्ट करना होगा (जो कि सी # से अलग है)।

$boolExpr = "abc".Length -eq 3 # length of "abc" is 3, hence $boolExpr will be True
if($boolExpr -eq $true){
    "Length is 3"
}
# result will be "Length is 3" 
$boolExpr -ne $true
#result will be False

ध्यान दें कि जब आप अपने कोड में बूलियन ट्रू / गलत का उपयोग करते हैं, तो आप $true या $false लिखते हैं, लेकिन जब पॉवरशेल एक बूलियन देता है, तो यह True या False जैसा लगता है

$ अशक्त

$null का उपयोग अनुपस्थित या अपरिभाषित मूल्य को दर्शाने के लिए किया जाता है।
$null को सरणियों में रिक्त मान के लिए एक खाली प्लेसहोल्डर के रूप में इस्तेमाल किया जा सकता है:

PS C:\> $array = 1, "string", $null
PS C:\> $array.Count
3

जब हम ForEach-Object के स्रोत के समान सरणी का उपयोग करते हैं, तो यह सभी तीन आइटम ($ null सहित) संसाधित करेगा:

PS C:\> $array | ForEach-Object {"Hello"}
Hello
Hello
Hello

सावधान रहे! इसका मतलब यह है कि ForEach-Object WILL प्रक्रिया भी $null को अपने आप में पूरा कर ForEach-Object :

PS C:\> $null | ForEach-Object {"Hello"} # THIS WILL DO ONE ITERATION !!!
Hello

यदि आप क्लासिक foreach लूप से इसकी तुलना करते हैं तो यह बहुत ही अप्रत्याशित परिणाम है:

PS C:\> foreach($i in $null) {"Hello"} # THIS WILL DO NO ITERATION
PS C:\>

$ ओएफएस

आउटपुट फ़ील्ड सेपरेटर नामक वैरिएबल में स्ट्रिंग मान होता है जो किसी सरणी को स्ट्रिंग में कनवर्ट करते समय उपयोग किया जाता है। डिफ़ॉल्ट रूप से $OFS = " " ( एक स्थान ), लेकिन इसे बदला जा सकता है:

PS C:\> $array = 1,2,3
PS C:\> "$array" # default OFS will be used
1 2 3
PS C:\> $OFS = ",." # we change OFS to comma and dot
PS C:\> "$array"
1,.2,.3

$ _ / $ PSItem

वर्तमान में पाइपलाइन द्वारा संसाधित की जा रही वस्तु / वस्तु शामिल है।

PS C:\> 1..5 | % { Write-Host "The current item is $_" }
The current item is 1
The current item is 2
The current item is 3
The current item is 4
The current item is 5

$PSItem और $_ समान हैं और परस्पर विनिमय में उपयोग किए जा सकते हैं, लेकिन $_ अब तक सबसे अधिक उपयोग किया जाता है।

$?

अंतिम ऑपरेशन की स्थिति शामिल है। जब कोई त्रुटि नहीं होती है, तो यह True सेट होता है:

PS C:\> Write-Host "Hello"
Hello
PS C:\> $?
True

यदि कुछ त्रुटि है, तो यह False सेट है:

PS C:\> wrt-host
wrt-host : The term 'wrt-host' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ wrt-host
+ ~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (wrt-host:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\> $?
False

$ त्रुटि

सबसे हाल की त्रुटि वस्तुओं की सरणी। सरणी में पहला सबसे हाल का एक है:

PS C:\> throw "Error" # resulting output will be in red font
Error
At line:1 char:1
+ throw "Error"
+ ~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (Error:String) [], RuntimeException
    + FullyQualifiedErrorId : Error

PS C:\> $error[0] # resulting output will be normal string (not red    )
Error
At line:1 char:1
+ throw "Error"
+ ~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (Error:String) [], RuntimeException
    + FullyQualifiedErrorId : Error

उपयोग संकेत: एक प्रारूप cmdlet (जैसे प्रारूप-सूची) में $error चर का उपयोग करते समय, -Force स्विच का उपयोग करने के लिए जागरूक -Force । अन्यथा प्रारूप cmdlet ऊपर दिखाए गए तरीके से $error सामग्री का उत्पादन करने जा रहा है।

त्रुटि प्रविष्टियों को $Error.Remove($Error[0]) माध्यम से हटाया जा सकता है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow