PowerShell의 변수에 null 값을 할당하려면 어떻게 해야 합니까?
null 값을 다음과 같은 변수에 할당합니다.$dec
, 하지만 그것은 나에게 오류를 줍니다.여기 내 코드가 있습니다.
import-module activedirectory
$domain = "domain.example.com"
$dec = null
Get-ADComputer -Filter {Description -eq $dec}
이 변수들은 자동 변수들입니다, 예를 들어,$null
,$true
,$false
기타.
about_Automatic_Variables
, https://technet.microsoft.com/en-us/library/hh847768.aspx?f=255&MSPPError=-2147217396 를 참조하십시오.
$NULL
$null
는 NULL 또는 빈 값을 포함하는 자동 변수입니다.이 변수를 사용하여 명령 및 스크립트에서 부재하거나 정의되지 않은 값을 나타낼 수 있습니다.Windows PowerShell 트리트
$null
값을 가진 개체로서, 즉 명시적 자리 표시자로서, $ null를 사용하여 일련의 값에서 빈 값을 나타낼 수 있습니다.예를 들어, 언제
$null
컬렉션에 포함되며 개체 중 하나로 계산됩니다.C:\PS> $a = ".dir", $null, ".pdf" C:\PS> $a.count 3
당신이 피리를 피우면.
$null
에 가변적인ForEach-Object
cmdlet, 다음에 대한 값이 생성합니다.$null
, 다른 대상들이 그러하듯이 말입니다PS C:\ps-test> ".dir", $null, ".pdf" | Foreach {"Hello"} Hello Hello Hello
결과적으로 사용할 수 없습니다.
$null
"파라미터 값 없음"을 의미합니다.매개변수 값:$null
는 기본 매개 변수 값을 재정의합니다.그러나 Windows PowerShell은 다음과 같이 처리합니다.
$null
자리 표시자로서 변수를 사용하면 다음과 같은 스크립트를 사용할 수 있습니다. 이 스크립트는 다음과 같이 작동하지 않습니다.$null
무시당했습니다.$calendar = @($null, $null, “Meeting”, $null, $null, “Team Lunch”, $null) $days = Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" $currentDay = 0 foreach($day in $calendar) { if($day –ne $null) { "Appointment on $($days[$currentDay]): $day" } $currentDay++ }
출력:
Appointment on Tuesday: Meeting Appointment on Friday: Team lunch
사용하다$dec = $null
설명서에서:
$null은 NULL 또는 빈 값을 포함하는 자동 변수입니다.이 변수를 사용하여 명령 및 스크립트에서 부재하거나 정의되지 않은 값을 나타낼 수 있습니다.
PowerShell은 $null을 값이 있는 개체, 즉 명시적 자리 표시자로 처리하므로 $null을 사용하여 일련의 값에서 빈 값을 나타낼 수 있습니다.
단순히 설명 속성이 비어있는 모든 컴퓨터 개체를 나열하는 것이 목표라면 이렇게 해보십시오.
import-module activedirectory
$domain = "domain.example.com"
Get-ADComputer -Filter '*' -Properties Description | where { $_.Description -eq $null }
다른 사람들이 말했듯이, 사용.$null
.
하지만, 다음의 처리.$null
그렇게 간단하지 않습니다.
목록(또는 더 정확하게는,System.Array
객체)$null
목록을 인덱싱할 때 자리 표시 개체로 처리되므로($null, $null).count
산출물들2
.
하지만 그렇지 않으면$null
에 의해 보고된 바와 같이, 내용이 없음(객체가 없음)을 나타내는 플래그로 취급됩니다. 또는 보다 정확하게는 "null 값의 표현식"으로 보고됩니다..GetType()
), 그래서($null).count
산출물들0
.
따라서
$null.count; # Output = 0
($null).count; # Output = 0
(, $null).count; # Output = 1
($null, $null).count; # Output = 2
($null, $null, $null).count; # Output = 3
참고: 동일한 출력이 에서 반환됩니다..count
그리고..length
위와 같은 맥락에서
마찬가지로 위의 내용 중 하나를 변수에 명시적으로 할당하는 경우, 에 해당합니다.
$aaa = $null; $aaa.count
$bbb = ($null, $null); $bbb.count
각각의 출력은0
그리고.2
.
마찬가지로, 로핑(looping.ForEach
, 와 같이
$aaa = $null; ForEach ($a in $aaa) {write-host "Foo" -NoNewLine}
$bbb = ($null, $null); ForEach ($b in $bbb) {write-host "Bar" -NoNewLine}
각각의 출력, 아무것도, 그리고BarBar
.
그러나 목록에서 반환된 개별 항목에서 작동할 때 주의하십시오. $null
를 실행하면 확인할 수 있듯이, 다시 "null 값 식"으로 처리됩니다.
$xxx = ($null, "foo", $null); ForEach ($x in $xxx) {write-host "C=" $x.count "| " -NoNewLine}
어떤 결과물이C= 0 | C= 1 | C= 0 |
.
언급URL : https://stackoverflow.com/questions/28697349/how-do-i-assign-a-null-value-to-a-variable-in-powershell
'programing' 카테고리의 다른 글
angular $resource delete가 express.js 서버로 본문을 전송하지 않습니다. (0) | 2023.11.07 |
---|---|
행 선택과 업데이트를 동시에 할 수 있는 방법이 있습니까? (0) | 2023.11.07 |
sql 주입 공격에서 게시물의 스크립트를 제거하는 방법? (0) | 2023.11.02 |
WordPress의 외부 DB에서 SQL 쿼리 (0) | 2023.11.02 |
클라이언트 PC에 로컬 DB 배포 (0) | 2023.11.02 |