반응형
PowerShell의 어레이에 요소를 동적으로 추가하려면 어떻게 해야 합니까?
저는 아직 파워쉘 경험이 많지 않고 앞으로 가면서 독학을 하려고 합니다.
더 큰 프로젝트를 위해 개념 증명 코드를 만들려고 합니다.여기서의 주요 목표는 함수를 사용하여 배열에 요소를 너무 동적으로 생성하고 추가하는 것입니다.
여기 내 코드가 있습니다.
$testArray = @()
function addToArray($Item1)
{
$testArray += $Item1
"###"
}
$tempArray = "123", "321", "453"
$foldertest = "testFolder"
foreach($item in $tempArray)
{
addToArray $item
}
"###"
함수가 완료될 때마다 배열이 비어 있습니다.제 프로그래밍 경험의 대부분은 자바, PHP, 일부 C와 C++에서 비롯되는데, 제가 이것을 PHP(물론 언어 구문 조정)로 했다면 이것은 잘 작동했을 것입니다.
$testArray = [System.Collections.ArrayList]@()
$tempArray = "123", "321", "453"
foreach($item in $tempArray)
{
$arrayID = $testArray.Add($item)
}
문제는 범위 중 하나입니다. addToArray 함수 안에서 행을 다음과 같이 변경합니다.
$script:testArray += $Item1
...예상하는 배열 변수에 저장합니다.
동적인 양의 항목을 사용할 경우 목록을 사용하는 것이 보다 정확한 솔루션이 될 수 있습니다.
$testArray = New-Object System.Collections.Generic.List[System.Object]
$tempArray = "123", "321", "453"
foreach($item in $tempArray)
{
$testArray.Add($item)
}
참고: 이 경우 에서 목록의 힘을 얻을 수 있습니다.Net을 사용하면 쉽게 linq를 적용하고 병합하고 분할하여 .Net의 목록을 사용하여 수행할 수 있습니다.
각 루프 반복에서 배열을 다시 생성하는 대신(기본적으로 배열에 추가할 때마다 수행되는 작업), 루프의 결과를 변수에 할당합니다.
$testArray = foreach($item in $tempArray)
{
addToArray $item
}
배열의 맨 처음에 항목을 추가하려면(인덱스 0) PHP의 array_unshift($array, $item)와 같이 다음과 같이 작업할 수 있습니다.
$tempArray = "123", "321", "453"
$foldertest = "testFolder"
$tempArray = @($foldertest) + $tempArray
다음과 같은 이점이 있습니다.
PSD:\users\user1\temp> $tempray테스트폴더123321453
언급URL : https://stackoverflow.com/questions/13318382/how-do-i-dynamically-add-elements-to-arrays-in-powershell
반응형
'source' 카테고리의 다른 글
WooCommerce - 배송비 재정의 (0) | 2023.10.09 |
---|---|
Oracle: 데이터를 찾을 수 없는 경우에도 항상 하나의 행만 반환하는 쿼리를 가져옵니다. (0) | 2023.10.09 |
자바에서 pl/sql 함수를 호출하시겠습니까? (0) | 2023.10.09 |
Android의 컨텍스트에서 작업 가져오기 (0) | 2023.10.09 |
MariaDB에서 동적 열 이름을 변경하려면 어떻게 해야 합니까? (0) | 2023.10.09 |