다음을 통해 공유


Join-String

파이프라인의 개체를 단일 문자열로 결합합니다.

구문

Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]
Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-SingleQuote]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]
Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-DoubleQuote]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]
Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-FormatString <String>]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]

Description

cmdlet은 Join-String 파이프라인 개체의 텍스트를 단일 문자열로 조인하거나 결합합니다.

매개 변수를 지정하지 않으면 파이프라인 개체가 문자열로 변환되고 기본 구분 기호 $OFS와 조인됩니다.

참고 항목

설정할 $OFS 때 해당 값은 변수가 다시 설정될 때까지 문자열로 변환될 때 배열을 조인하는 $null데 사용됩니다. 사용은 $OFS 코드의 다른 위치에서 의도하지 않은 영향을 미칠 수 있으므로 대신 구분 기호 매개 변수를 사용하는 것이 가장 좋습니다.

속성 이름을 지정하면 속성 값이 문자열로 변환되고 문자열로 조인됩니다.

속성 이름 대신 스크립트 블록을 사용할 수 있습니다. 스크립트 블록의 결과는 결과를 형성하기 위해 조인되기 전에 문자열로 변환됩니다. 개체 속성의 텍스트 또는 문자열로 변환된 개체의 결과를 결합할 수 있습니다.

이 cmdlet은 PowerShell 6.2에서 도입되었습니다.

예제

예제 1: 디렉터리 이름 조인

다음은 디렉터리 이름을 조인하고, 출력을 큰따옴표로 래핑하고, 디렉터리 이름을 쉼표와 공백(, )으로 구분하는 예제입니다. 출력은 문자열 개체입니다.

Get-ChildItem -Directory C:\ | Join-String -Property Name -DoubleQuote -Separator ', '

"PerfLogs", "Program Files", "Program Files (x86)", "Users", "Windows"

Get-ChildItem디렉터리 매개 변수를 사용하여 드라이브의 모든 디렉터리 이름을 C:\ 가져옵니다. 개체는 파이프라인 Join-String아래로 전송됩니다. Property 매개 변수는 디렉터리 이름을 지정합니다. DoubleQuote 매개 변수는 디렉터리 이름을 큰따옴표로 래핑합니다. Separator 매개 변수는 쉼표와 공백(, )을 사용하여 디렉터리 이름을 구분하도록 지정합니다.

개체는 Get-ChildItem System.IO.DirectoryInfo이며 Join-String 개체를 System.String으로 변환합니다.

예제 2: 속성 하위 문자열을 사용하여 디렉터리 이름 조인

다음은 하위 문자열 메서드를 사용하여 디렉터리 이름의 처음 네 글자를 가져와 출력을 작은따옴표로 래핑하고 디렉터리 이름을 세미콜론(;)으로 구분하는 예제입니다.

Get-ChildItem -Directory C:\ | Join-String -Property {$_.Name.SubString(0,4)} -SingleQuote -Separator ';'

'Perf';'Prog';'Prog';'User';'Wind'

Get-ChildItem디렉터리 매개 변수를 사용하여 드라이브의 모든 디렉터리 이름을 C:\ 가져옵니다. 개체는 파이프라인 Join-String아래로 전송됩니다.

속성 매개 변수 스크립트 블록은 자동 변수($_)를 사용하여 각 개체의 Name 속성 부분 문자열을 지정합니다. 부분 문자열은 각 디렉터리 이름의 처음 네 글자를 가져옵니다. 부분 문자열은 문자 시작 및 끝 위치를 지정합니다. SingleQuote 매개 변수는 디렉터리 이름을 작은따옴표로 래핑합니다. Separator 매개 변수는 세미콜론(;)을 사용하여 디렉터리 이름을 구분하도록 지정합니다.

자동 변수 및 부분 문자열에 대한 자세한 내용은 about_Automatic_Variables 및 부분 문자열을 참조하세요.

예제 3: 별도의 줄에 조인 출력 표시

다음은 서비스 이름을 각 서비스에 별도의 줄에 조인하고 탭으로 들여쓰는 예제입니다.

Get-Service -Name se* | Join-String -Property Name -Separator "`r`n`t" -OutputPrefix "Services:`n`t"

Services:
    seclogon
    SecurityHealthService
    SEMgrSvc
    SENS
    Sense
    SensorDataService
    SensorService
    SensrSvc
    SessionEnv

Get-Service 에서는 Name 매개 변수를 사용하여 .로 se*시작하는 서비스를 지정합니다. 별표(*)는 모든 문자에 대한 와일드카드입니다.

개체는 속성 매개 변수를 Join-String 사용하여 서비스 이름을 지정하는 파이프라인 아래로 전송됩니다. Separator 매개 변수는 캐리지 리턴(), 줄 바꿈() 및 탭(`r`n`t)을 나타내는 세 개의 특수 문자를 지정합니다. OutputPrefix첫 번째 출력 줄 앞에 새 줄과 탭이 있는 레이블 Services: 을 삽입합니다.

특수 문자에 대한 자세한 내용은 about_Special_Characters 참조하세요.

예제 4: 개체에서 클래스 정의 만들기

이 예제에서는 기존 개체를 템플릿으로 사용하여 PowerShell 클래스 정의를 생성합니다.

이 코드 샘플에서는 스플래팅을 사용하여 줄 길이를 줄이고 가독성을 향상시킵니다. 자세한 내용은 about_Splatting 참조하세요.

$obj = [pscustomobject] @{Name = "Joe"; Age = 42}
$parms = @{
  Property = "Name"
  FormatString = '  ${0}'
  OutputPrefix = "class {`n"
  OutputSuffix = "`n}`n"
  Separator = "`n"
}
$obj.PSObject.Properties | Join-String @parms

class {
  $Name
  $Age
}

매개 변수

-DoubleQuote

각 파이프라인 개체의 문자열 값을 큰따옴표로 묶습니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-FormatString

각 파이프라인 개체를 조인하기 전에 서식을 지정하는 방법을 지정하는 형식 문자열을 지정합니다. {0} 자리 표시자를 사용하여 현재 개체를 나타냅니다. 중괄호({})를 서식이 지정된 문자열에 유지해야 하는 경우 중괄호({{}})를 두 배로 늘려 이스케이프할 수 있습니다.

자세한 내용은 String.Format 메서드 및 복합 서식 지정을 참조하세요.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-InputObject

조인할 텍스트를 지정합니다. 텍스트가 포함된 변수를 입력하거나 문자열에 조인할 개체를 가져오는 명령이나 식을 입력합니다.

형식:PSObject[]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-OutputPrefix

출력 문자열 앞에 삽입되는 텍스트입니다. 문자열에는 캐리지 리턴(), 줄 바꿈(`r) 및 탭(`n)과 같은 특수 문자가`t 포함될 수 있습니다.

형식:String
별칭:op
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-OutputSuffix

출력 문자열에 추가되는 텍스트입니다. 문자열에는 캐리지 리턴(), 줄 바꿈(`r) 및 탭(`n)과 같은 특수 문자가`t 포함될 수 있습니다.

형식:String
별칭:os
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Property

텍스트로 변환할 속성 또는 속성 식의 이름입니다.

형식:PSPropertyExpression
Position:0
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Separator

각 파이프라인 개체의 텍스트 사이에 삽입되는 쉼표 또는 세미콜론과 같은 텍스트 또는 문자입니다.

기본적으로 파이프라인 개체는 구분 기호 없이 조인됩니다. 출력 필드 구분 기호 기본 설정 변수($OFS)가 설정된 경우 이 매개 변수를 지정하지 않는 한 해당 값이 사용됩니다.

참고 항목

설정할 $OFS 때 해당 값은 변수가 다시 설정될 때까지 문자열로 변환될 때 배열을 조인하는 $null데 사용됩니다. 사용은 $OFS 코드의 다른 위치에서 의도하지 않은 영향을 미칠 수 있으므로 대신 구분 기호 매개 변수를 사용하는 것이 가장 좋습니다.

형식:String
Position:1
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-SingleQuote

각 파이프라인 개체의 문자열 값을 작은따옴표로 래핑합니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-UseCulture

현재 문화권의 목록 구분 기호를 항목 구분 기호로 사용합니다. 문화권의 목록 구분 기호를 찾으려면 다음 명령을 (Get-Culture).TextInfo.ListSeparator사용합니다.

형식:SwitchParameter
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

PSObject

출력

String