.NET 5 분할 방법을 사용하여 PowerShell 7.1+에서 문자열 분할
6299 단어 dotnetpowershellscriptingcoding
Powershell 7(어쨌든 7.1 이상)은 .NET 5를 기반으로 합니다. 7.1+는 수많은 멋진 기능을 구현했습니다. 모든 변화가 그렇듯,
Powershell에서 코딩할 때 .NET 메서드를 혼합하여 사용합니다. 내가 자주 사용하는 한 가지 방법은 분할입니다. 최종 사용자를 위한 기본 국가 코드를 자동으로 식별하기 위해 게임이 지원하는 지역에 문화를 연결하는 프로젝트를 진행하고 있었습니다. 내 목표는
Get-Culture
의 표시 이름에서 국가를 가져오는 것이었습니다. PowerShell 5에서는 다음과 같이 할 수 있습니다.Get-Culture | Select-Object -ExpandProperty DisplayName
English (United States)
$SplitArray = (Get-Culture | Select-Object -ExpandProperty DisplayName).Split("()")
$SplitArray
English
United States
$SplitArray[1]
United States
PowerShell 7.1.3에서 동일한 명령을 실행해 보겠습니다.
Get-Culture | Select-Object -ExpandProperty DisplayName
English (United States)
$SplitArray = (Get-Culture | Select-Object -ExpandProperty DisplayName).Split("()")
$SplitArray
English (United States)
$SplitArray[1]
잠깐, 7.1.3에서는 무슨 일이 있었나요? 분할이 작동하지 않아 배열의 마지막 항목이 반환되지 않았습니다.
살펴보겠습니다. 몇 가지 기본 정보를 가져오기 위해 cmdlet
Get-Culture
을 사용했습니다. (
및 )
두 문자에 분할 방법을 사용할 때. PowerShell 5는 우리가 문자열을 분할하려는 것을 확인하지만 자동으로 문자열을 (
및 )
문자로 분할하도록 변환합니다. .NET 4에서 문자열 클래스에는 문자를 매개변수 유형으로 사용하는 메서드만 있었습니다. PowerShell은 이를 확인하고 자동으로 변환하여 삶을 좀 더 쉽게 만듭니다. 여기에는 문자 배열이므로 'OR'(|
)이 암시되어 있습니다.PowerShell 7이 다르게 작동하는 이유는 무엇입니까? .NET 5에서 문자열 클래스에는 문자열을 허용하는 몇 가지 추가 매개 변수가 있습니다. PowerShell 7은 자동 작업을 수행하지 않습니다. 여기서 차이점을 실제로 설명하기 위해 동일한 출력을 얻기 위해 위의
Get-Culture
를 사용하여 문자 대신 문자열로 분할하겠습니다. 이것은 추악한 방법이지만 데모 목적입니다.$SplitArray = (((Get-Culture | Select-Object -ExpandProperty DisplayName).Split("English ("))[1].Split(')'))[0]
$SplitArray
United States
좋아, 깔끔하지만 조금 못 생겼어. 우리는 두 번 헤어집니다. 더 좋은 방법은 무엇입니까? 문자 타입 변환 배열을 사용할 수 있습니다!
$SplitArray = ((Get-Culture | Select-Object -ExpandProperty DisplayName).Split([char[]]"()"))[1]
$SplitArray
United States
즐거운 코딩하세요!
Reference
이 문제에 관하여(.NET 5 분할 방법을 사용하여 PowerShell 7.1+에서 문자열 분할), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dotnvo/using-the-split-method-to-split-strings-in-powershell-7-1-net-5-2kci텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)