PowerShell에서 문자열을 정수로 변환하는 방법
-
PowerShell에서 문자열을 정수로 변환하기 위해
[int]
사용하기 -
PowerShell에서 문자열을 정수로 변환하기 위해
[System.Int32]
사용하기 - 문자열을 정수로 변환하기 위해 변수의 데이터 타입 정의하기
- 결론

PowerShell에서 문자열을 정수로 변환하는 방법을 아는 것은 가치 있는 기술입니다. 이 튜토리얼에서는 PowerShell에서 문자열을 정수로 변환하는 방법을 배웁니다.
[int]
와 [System.Int32]
를 사용하여 이 변환을 수행하는 기술을 살펴보며, 이를 통해 데이터를 쉽게 수정할 수 있습니다.
PowerShell에서 문자열을 정수로 변환하기 위해 [int]
사용하기
PowerShell에서 [int]
를 사용하여 문자열을 정수로 변환할 수 있습니다. 이를 타입 캐스팅 또는 타입 변환이라고 합니다.
다음 구문은 문자열을 정수로 변환하고 결과를 변수 $integerVariable
에 할당하는 PowerShell의 간단한 할당 문장입니다.
구문:
$integerVariable = [int]$stringVariable
매개변수:
$integerVariable
: 이 변수는 변환 후 정수 값을 저장합니다.[int]
: 이것은$stringVariable
의 값을 정수로 타입 캐스팅하는 데 사용됩니다.$stringVariable
: 이것은 변환하려는 문자열이 포함된 다른 변수 또는 표현식입니다.
변수 $a
가 다음과 같이 있다고 가정해 봅시다.
$a = 123
$a의 데이터 타입은 integer
입니다.
$a.GetType().Name
출력:
Int32
하지만 " "
로 값을 감싸면 데이터 타입은 string
이 됩니다.
$b = "123"
$b.GetType().Name
출력:
String
문자열 ($b = "123"
) 데이터 타입을 정수로 변환하기 위해 [int]
를 다음과 같이 사용할 수 있습니다.
$b = $b -as [int]
$b.GetType().Name
위 코드에서 변수 $b
로 시작합니다. 현재 $b
의 값과 데이터 타입은 우리에게 알려져 있지 않지만, 우리는 이를 정수로 취급하기를 원합니다.
다음으로 $b -as [int]
, 우리는 안전한 타입 캐스팅을 위해 -as
연산자를 사용합니다. 이는 $b
의 값을 지정된 타입 [int]
로 변환하려고 시도합니다.
변환 가능하면 결과가 $b
에 다시 할당됩니다. 그렇지 않으면 $b
는 변경되지 않습니다.
다음 줄에서는 $b.GetType().Name
을 사용하여 타입 캐스팅 작업 후 변수 $b
의 데이터 타입을 확인합니다.
이제 특정 값과 타입을 가진 변수 $b
의 경우에 대해 살펴봅시다:
-
만약
$b
가 처음에 정수 (예:$b = 42
)를 포함하면, 코드는 그 타입을 변경하지 않고 출력은Int32
가 됩니다. -
만약
$b
가 처음에 정수로 성공적으로 변환될 수 있는 문자열 (예:$b = "123"
)을 포함하면, 코드는 그 타입을 정수로 변경하고 출력은Int32
가 됩니다. -
만약
$b
가 처음에 정수로 변환할 수 없는 문자열 (예:$b = "hello"
)을 포함하면, 코드는 그 타입을 변경하지 않고 출력은 원래 값의 타입, 즉 문자열이므로 출력은String
이 됩니다.
출력:
Int32
출력 Int32
는 변수 $b
의 초기 값(이 코드 조각 이전)이 정수였거나 정수로 성공적으로 변환될 수 있는 문자열이라는 것을 의미합니다.
PowerShell에서 문자열을 정수로 변환하기 위해 [System.Int32]
사용하기
[System.Int32]
는 PowerShell에서 문자열을 정수로 변환하는 형태의 타입 캐스팅으로, 변수 또는 표현식을 Int32
데이터 타입으로 간주하도록 PowerShell에 명시적으로 지시합니다.
구문에서, 우리는 $stringValue
에 있는 문자열을 정수로 변환하고, 결과를 $intValue
에 저장합니다. 이는 원하는 데이터 타입을 지정하기 위해 [System.Int32]
구문을 사용하여 $stringValue
가 숫자 연산에 준비되도록 합니다.
구문:
$intValue = [System.Int32]$stringValue
코드에서 우리는 $stringValue
라는 문자열 변수를 "456"
의 값으로 설정하는 것으로 시작합니다. 그런 다음 [System.Int32]
를 사용하여 이 문자열을 정수로 변환하고 결과를 다른 변수인 $intValue
에 저장합니다.
이 변환 후, 우리는 $intValue
의 데이터 타입을 확인하기 위해 $intValue.GetType().Name
을 사용합니다.
출력:
Int32
출력은 변수 $intValue
가 특정한 32비트 정수 Int32
를 포함하고 있음을 알려줍니다.
문자열을 정수로 변환하기 위해 변수의 데이터 타입 정의하기
PowerShell은 변수의 데이터 타입을 자동으로 감지할 수 있습니다.
우리는 데이터 타입에 대해 구체적으로 정할 필요가 없으며 변수를 선언할 필요도 없습니다. 그러나 데이터 타입을 정의하여 데이터 타입을 강제로 설정할 수 있습니다.
예를 들어 봅시다.
[int]$c = "456"
$c.GetType().Name
위 코드에서 우리는 변수를 선언하고 이렇게 초기화합니다: [int]$c = "456"
. 이 줄은 PowerShell에 문자열 "456"
를 정수로 명시적으로 변환하라고 지시하며, 그 결과는 변수 $c
에 저장됩니다.
다음으로 변수 $c
의 데이터 타입을 알고 싶으므로 $c.GetType().Name
을 사용합니다. 이는 타입 캐스팅이 성공했는지 확인하는 방법입니다.
출력:
Int32
위의 출력은 Int32
로, 문자열 "456"
가 정수로 변환되었음을 나타냅니다. 그러나 문자열 값을 정수 데이터 타입으로 강제 변환하려고 하면 다음 코드 예제에서와 같이 오류가 발생합니다.
[int]$data = "storage"
$c.GetType().Name
위 코드에서 우리는 $data
라는 변수를 선언하고 문자열 값 "storage"
를 할당합니다. 다음 줄인 [int]$data
는 문자열 "storage"
를 정수 데이터 타입으로 강제로 변환하려는 시도를 나타냅니다.
이제 우리는 $data
변수의 데이터 타입을 확인하기 위해 $data.GetType().Name
을 사용합니다.
출력:
Cannot convert value "storage" to type "System.Int32". Error: "Input string was not in a correct format."
At line:1 char:1
+ [int]$data = "storage"
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : MetadataError: (:) [], ArgumentTransformationMetadataException
+ FullyQualifiedErrorId : RuntimeException
우리는 [int]
를 사용하여 이를 정수로 변환하려고 합니다. 그러나 문자열 "storage"
는 정수로 변환될 수 없으므로 PowerShell은 변수의 타입을 변경하지 않고 오류 메시지 "Input string was not in a correct format."
을 반환합니다.
결론
이 기사에서는 [int]
와 [System.Int32]
를 사용하여 문자열을 정수로 변환하는 방법을 배웠습니다. 이제 PowerShell에서 텍스트와 숫자 간의 전환을 쉽게 할 수 있습니다.
변수 타입을 제어함으로써 스크립트에서 정확성과 다재다능성을 얻을 수 있습니다.