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 |
입력
출력
관련 링크
PowerShell