2010-04-09 19 views

उत्तर

80

उपयोग

Set-Variable test -option Constant -value 100 

या

Set-Variable test -option ReadOnly -value 100 

"लगातार" और "ReadOnly" के बीच अंतर यह है कि केवल पढ़ने के लिए चर को निकाला (और उसके बाद फिर से बनाया)

के माध्यम से है
Remove-Variable test -Force 

जबकि एक स्थिर चर को हटाया नहीं जा सकता है (यहां तक ​​कि फोर्स)।

अधिक जानकारी के लिए this TechNet article देखें।

+3

हम्म, लेकिन **' सेट-वेरिएबल 'का उपयोग करते समय ** डेटाटाइप ** को कैसे मजबूर करते हैं? चर के साथ व्यवहार करते समय कोई '[स्ट्रिंग] $ name = value' का उपयोग कर सकता है लेकिन यह स्थिरांक के लिए संभव नहीं है? – masi

+5

@masi केवल मूल्य सेट करें 'सेट-वेरिएबल टेस्ट-अपशन कॉन्स्टेंट -वैल्यू [स्ट्रिंग] 100' – Monso

+3

@ मॉन्सो आपको' ([string] 100) जैसे प्रकार निर्दिष्ट करते समय मूल्य के चारों ओर कोष्ठक की आवश्यकता है। नीचे जवाब देखें। – Polymorphix

8

Set-Variable cmdlet के साथ उपयोग -option Constant:

Set-Variable myvar -option Constant -value 100 

अब $myvar 100 की एक निरंतर मूल्य नहीं है और बदला नहीं जा सकता।

+1

वाह, यह गुंजाइश है। आपको इसे करने के लिए सेट-वेरिएबल का उपयोग करना होगा, हुह? –

+0

हां, ऐसा करने के लिए अनजान तरीका नहीं है :) –

+1

आप या तो सेट-वेरिएबल (एसवी के लिए एलआईएड) के साथ या वैरिएबल (जीवी) का उपयोग करके और इसके विकल्प प्रॉपर्टी के साथ टिंकरिंग के साथ मौजूदा चर को संशोधित और मौजूदा कर सकते हैं। – x0n

12

यहाँ इस तरह एक निरंतर परिभाषित करने के लिए एक समाधान है:

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 
9

से लिया, कहते हैं कि Int64, आप स्पष्ट रूप से मूल्य डाल सकता सेट-चर में प्रयोग किया जाता है।

उदाहरण के लिए:

set-variable -name test -value ([int64]100) -option Constant 

जाँच करने के लिए,

और आप देखेंगे कि यह एक Int64 (बल्कि Int32 से है, जो मूल्य 100 के लिए सामान्य हो जाएगा) है।

-3

PowerShell v5.0

[स्थिर] [int] $ चर = 42

[स्थिर] [DATETIME] $ Thisday

और तरह की अनुमति चाहिए।

+0

पीएस 5.1 पर काम नहीं करता है। प्रकार [स्थिर] खोजने में असमर्थ। – ThomasMX

+0

उल्लेख नहीं है, स्थैतिक स्थिर के समान नहीं है –

संबंधित मुद्दे