정규 표현식을 사용할 수 있어야합니다. 예 :
PS C:\> '\\1.2.3.4\sharename1\etc1' |
Select-String '^\\\\[^\\]+\\(.+)' |
ForEach-Object { "\\domain.global\{0}" -f $_.Matches[0].Groups[1].Value }
\\domain.global\sharename1\etc1
PS C:\> '\\hostname\sharename2\etc2' |
Select-String '^\\\\[^\\]+\\(.+)' |
ForEach-Object { "\\domain.global\{0}" -f $_.Matches[0].Groups[1].Value }
\\domain.global\sharename2\etc2
PS C:\> '\\hostname.domain.global\sharename3\etc3' |
Select-String '^\\\\[^\\]+\\(.+)' |
ForEach-Object { "\\domain.global\{0}" -f $_.Matches[0].Groups[1].Value }
\\domain.global\sharename3\etc3
정규 표현식 패턴은 다음과 같습니다이가 번역
^\\\\[^\\]+\\(.+)
: 단일 \
다음 (^
)이 개 \
문자가 아닌 \
있습니다 얻을 1 개 이상의 문자, 시작 , 하나 이상의 문자 (.+
)를 입력하십시오. ()
은 경로 부분을 캡처하여 문자열 대체 (예 : $_.Matches[0].Groups[1].Value
) 할 수 있도록합니다.
언급해야 할 것은 모든 사용자는 예에서 \ sharename 다음에 다른 폴더가 있으므로 나중에 \\ domain.global \ sharename \에 모두 변경할 수는 없습니다. – nfoman
새 Dfs 이름이'domain.global \ sharename \ etc'이 아니라'domain.global'이라는 것을 가정하십시오? 질문을 예제로 업데이트하십시오. –
안녕하세요, 예. 새 DFS 이름은 domain.global입니다. 예 : \\ hostname \ sharename \ etc 새 \\ domain.global \ sharename \ etc – nfoman