programing

파워셸에 연관 배열이 있습니까?

newsource 2023. 11. 1. 22:23

파워셸에 연관 배열이 있습니까?

아이디, 이름 쌍을 돌려주는 기능을 쓰고 있습니다.

나는 다음과 같은 것을 하고 싶습니다.

$a = get-name-id-pair()
$a.Id
$a.Name

자바스크립트로 좋아요가 가능합니다.아니면 적어도

$a = get-name-id-pair()
$a["id"]
$a["name"]

php에서도 like가 가능합니다.파워쉘로 해도 되나요?

또한.

$a = @{'foo'='bar'}

아니면

$a = @{}
$a.foo = 'bar'

예. 다음 구문을 사용하여 작성합니다.

$a = @{}
$a["foo"] = "bar"

해쉬테이블을 통해 반복할 수 있는 방법도 추가할 것입니다. 해결책을 찾고 있었는데 찾지 못했기 때문에...

$c = @{"1"="one";"2"="two"} 
foreach($g in $c.Keys){write-host $c[$g]} #where key = $g and value = $c[$g]
#Define an empty hash
$i = @{}

#Define entries in hash as a number/value pair - ie. number 12345 paired with Mike is   entered as $hash[number] = 'value'

$i['12345'] = 'Mike'  
$i['23456'] = 'Henry'  
$i['34567'] = 'Dave'  
$i['45678'] = 'Anne'  
$i['56789'] = 'Mary'  

#(optional, depending on what you're trying to do) call value pair from hash table as a variable of your choosing

$x = $i['12345']

#Display the value of the variable you defined

$x

#If you entered everything as above, value returned would be:

Mike

여러 도메인에서 작업할 때 사이트/디렉토리를 추적하는 데 사용합니다.각 항목을 별도로 추가하지 않고 선언할 때 배열을 초기화할 수 있습니다.

$domain = $env:userdnsdomain
$siteUrls = @{ 'TEST' = 'http://test/SystemCentre' 
               'LIVE' = 'http://live/SystemCentre' }

$url = $siteUrls[$domain]
PS C:\> $a = @{}                                                      
PS C:\> $a.gettype()                                                  

IsPublic IsSerial Name                                     BaseType            

-------- -------- ----                                     --------            

True     True     Hashtable                                System.Object       

해시테이블은 연관 배열입니다.오.

또는:

PS C:\> $a = [Collections.Hashtable]::new()

JSON 문자열에서 만들기

$people= '[
{
"name":"John", 
"phone":"(555) 555-5555"
},{
"name":"Mary", 
"phone":"(444) 444-4444"
}
]';

# Convert String To Powershell Array
$people_obj = ConvertFrom-Json -InputObject $people;

# Loop through them and get each value by key.
Foreach($person in $people_obj ) {
    echo $person.name;
}

다음 작업도 수행할 수 있습니다.

function get-faqentry { "meaning of life?", 42 }
$q, $a = get-faqentry 

연관 배열은 아니지만 마찬가지로 유용합니다.

-오이신

언급URL : https://stackoverflow.com/questions/1506043/does-powershell-have-associative-arrays