2012-06-12 1 views
3

다음의 반대 기능은 무엇입니까?PowerShell에서 Split의 반대 (비 cmdlet)

$tmp = $domain.split(".") 

즉, 어떻게 배열로 문자열을 전송합니까? 나는 "가입"한다고 들었다. 그러나 나는 그것이 작동하도록 할 수 없다.

퀘스트가 아닌 비 cmdlet은 PowerShell v1 및 모든 이전 시스템에서 작동해야합니다.

답변

4
$result = [string]::join(".", $array) 
+0

Works Perfect! 고맙습니다! –

+0

이것은 녹색 체크 표시가 있지만, 존 Z의 대답도 참조하십시오. –

13

A는 PowerShell에서 연산자를 결합있다 :

이 (V2에서 소개)에 가입 연산자와 .NET 방법에 참여하는 것 외에도
$tmp -join "." 
3

, 당신은 또한 특수 변수 $OFS의 값을 변경할 수 있습니다 점에 (Ouptut 필드의 separator) (기본 값은 공간) 및 따옴표로 TMP를 둘러싸 : 위의 예에서

PS> $tmp = "foo.domain.com".split(".") 
PS> & {$ofs='.';"$tmp"} 
foo.domain.com 

을 나는 창이 않도록하는 스크립트 블록에서 $ OFS 변경 전역 범위 (scriptblocks는 중첩 된 범위를 만듭니다)

+0

Ah Shay, 자습서를 많이 읽었으며 실망시키지 말아야합니다! 좋은 일꾼을 계속 지켜라. -이 주제에서는 PHP의 "implode()"기능과 같은 간단한 기능이 없다는 것에 놀랐습니다. 우리가 살고있는 세상. –

+0

감사합니다. @KarlMorrison, Implode 함수에 익숙하지 않지만 다음 함수를 만들 수 있습니다. function implode ($ array, $ delimiter) {$ array -join $ delimiter}; implode $ tmp '.' –

+1

스크립트 블록은 중첩 된 범위를 만들지 않습니다. – Nacht