[.net] PowerShell में स्ट्रिंग शून्य या खाली होने पर मैं कैसे जांच सकता हूं?



Answers

आप लोग इसे बहुत कठिन बना रहे हैं। पावरशेल इस सुंदर ढंग से संभालता है उदाहरण के लिए:

> $str1 = $null
> if ($str1) { 'not empty' } else { 'empty' }
empty

> $str2 = ''
> if ($str2) { 'not empty' } else { 'empty' }
empty

> $str3 = ' '
> if ($str3) { 'not empty' } else { 'empty' }
not empty

> $str4 = 'asdf'
> if ($str4) { 'not empty' } else { 'empty' }
not empty

> if ($str1 -and $str2) { 'neither empty' } else { 'one or both empty' }
one or both empty

> if ($str3 -and $str4) { 'neither empty' } else { 'one or both empty' }
neither empty
Question

क्या PowerShell में स्ट्रिंग शून्य या खाली है या नहीं, यह जांचने के लिए कोई अंतर्निहित IsNullOrEmpty फ़ंक्शन है?

मुझे अब तक यह नहीं मिला और यदि कोई अंतर्निहित तरीका है, तो मैं इसके लिए कोई फ़ंक्शन नहीं लिखना चाहता हूं।




मेरे पास एक पावरशेल स्क्रिप्ट है जिसे मुझे कंप्यूटर पर चलाना है, इसलिए इसकी तारीख [स्ट्रिंग] :: IsNullOrWhiteSpace () है, इसलिए मैंने अपना खुद लिखा है।

function IsNullOrWhitespace($str)
{
    if ($str)
    {
        return ($str -replace " ","" -replace "`t","").Length -eq 0
    }
    else
    {
        return $TRUE
    }
}



लंबाई की जांच करें। यदि वस्तु मौजूद है, तो इसकी लंबाई होगी।

शून्य वस्तुओं की कोई लंबाई नहीं है, अस्तित्व में नहीं है, और जांच नहीं की जा सकती है।

स्ट्रिंग ऑब्जेक्ट की लंबाई है।

सवाल यह था: IsNull या IsEmpty, IsNull या IsEmpty या IsWhiteSpace नहीं है

#Null
$str1 = $null
$str1.length
($str1 | get-member).TypeName[0]
# Returns big red error

#Empty
$str2 = ""
$str2.length
($str2 | get-member).TypeName[0]
# Returns 0

## Whitespace
$str3 = " "
$str3.length
($str3 | get-member).TypeName[0]
## Returns 1 



# cases
$x = null
$x = ''
$x = ' '

# test
if ($x -and $x.trim()) {'not empty'} else {'empty'}
or
if ([string]::IsNullOrWhiteSpace($x)) {'empty'} else {'not empty'}



यदि यह किसी फ़ंक्शन में पैरामीटर है, तो आप इसे ValidateNotNullOrEmpty से ValidateNotNullOrEmpty कर सकते हैं जैसा कि आप इस उदाहरण में देख सकते हैं:

Function Test-Something
{
    Param(
        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [string]$UserName
    )

    #stuff todo
}



Related