मैं PowerShell में कुछ पूर्णांक स्थिरांक घोषित करना चाहता हूं।क्या PowerShell समर्थन स्थिरांक करता है?
क्या ऐसा करने का कोई अच्छा तरीका है?
मैं PowerShell में कुछ पूर्णांक स्थिरांक घोषित करना चाहता हूं।क्या PowerShell समर्थन स्थिरांक करता है?
क्या ऐसा करने का कोई अच्छा तरीका है?
उपयोग
Set-Variable test -option Constant -value 100
या
Set-Variable test -option ReadOnly -value 100
"लगातार" और "ReadOnly" के बीच अंतर यह है कि केवल पढ़ने के लिए चर को निकाला (और उसके बाद फिर से बनाया)
के माध्यम से हैRemove-Variable test -Force
जबकि एक स्थिर चर को हटाया नहीं जा सकता है (यहां तक कि फोर्स)।
अधिक जानकारी के लिए this TechNet article देखें।
Set-Variable
cmdlet के साथ उपयोग -option Constant
:
Set-Variable myvar -option Constant -value 100
अब $myvar
100 की एक निरंतर मूल्य नहीं है और बदला नहीं जा सकता।
वाह, यह गुंजाइश है। आपको इसे करने के लिए सेट-वेरिएबल का उपयोग करना होगा, हुह? –
हां, ऐसा करने के लिए अनजान तरीका नहीं है :) –
आप या तो सेट-वेरिएबल (एसवी के लिए एलआईएड) के साथ या वैरिएबल (जीवी) का उपयोग करके और इसके विकल्प प्रॉपर्टी के साथ टिंकरिंग के साथ मौजूदा चर को संशोधित और मौजूदा कर सकते हैं। – x0n
यहाँ इस तरह एक निरंतर परिभाषित करने के लिए एक समाधान है:
const myConst = 42
समाधान मूल्य का एक विशेष प्रकार का उपयोग करने के http://poshcode.org/4063
function Set-Constant {
<#
.SYNOPSIS
Creates constants.
.DESCRIPTION
This function can help you to create constants so easy as it possible.
It works as keyword 'const' as such as in C#.
.EXAMPLE
PS C:\> Set-Constant a = 10
PS C:\> $a += 13
There is a integer constant declaration, so the second line return
error.
.EXAMPLE
PS C:\> const str = "this is a constant string"
You also can use word 'const' for constant declaration. There is a
string constant named '$str' in this example.
.LINK
Set-Variable
About_Functions_Advanced_Parameters
#>
[CmdletBinding()]
param(
[Parameter(Mandatory=$true, Position=0)]
[string][ValidateNotNullOrEmpty()]$Name,
[Parameter(Mandatory=$true, Position=1)]
[char][ValidateSet("=")]$Link,
[Parameter(Mandatory=$true, Position=2)]
[object][ValidateNotNullOrEmpty()]$Mean,
[Parameter(Mandatory=$false)]
[string]$Surround = "script"
)
Set-Variable -n $name -val $mean -opt Constant -s $surround
}
Set-Alias const Set-Constant
से लिया, कहते हैं कि Int64, आप स्पष्ट रूप से मूल्य डाल सकता सेट-चर में प्रयोग किया जाता है।
उदाहरण के लिए:
set-variable -name test -value ([int64]100) -option Constant
जाँच करने के लिए,
और आप देखेंगे कि यह एक Int64 (बल्कि Int32 से है, जो मूल्य 100 के लिए सामान्य हो जाएगा) है।
PowerShell v5.0
[स्थिर] [int] $ चर = 42
[स्थिर] [DATETIME] $ Thisday
और तरह की अनुमति चाहिए।
पीएस 5.1 पर काम नहीं करता है। प्रकार [स्थिर] खोजने में असमर्थ। – ThomasMX
उल्लेख नहीं है, स्थैतिक स्थिर के समान नहीं है –
हम्म, लेकिन **' सेट-वेरिएबल 'का उपयोग करते समय ** डेटाटाइप ** को कैसे मजबूर करते हैं? चर के साथ व्यवहार करते समय कोई '[स्ट्रिंग] $ name = value' का उपयोग कर सकता है लेकिन यह स्थिरांक के लिए संभव नहीं है? – masi
@masi केवल मूल्य सेट करें 'सेट-वेरिएबल टेस्ट-अपशन कॉन्स्टेंट -वैल्यू [स्ट्रिंग] 100' – Monso
@ मॉन्सो आपको' ([string] 100) जैसे प्रकार निर्दिष्ट करते समय मूल्य के चारों ओर कोष्ठक की आवश्यकता है। नीचे जवाब देखें। – Polymorphix