programing

PowerShell 4.0을 사용하여 변수 입력에서 공백 제거

megabox 2023. 8. 2. 08:59
반응형

PowerShell 4.0을 사용하여 변수 입력에서 공백 제거

이미 몇 가지 시도를 해봤는데 왠지 잘 안 되는 것 같아요.

기본적으로 제가 하려는 것은 사용자가 "Read-host" cmdlet을 사용하여 값을 입력한 다음 공간을 제거하는 것입니다.

노력했습니다.

$answer = read-host
$answer.replace(' ' , '""')

그리고:

$answer = read-host
$answer -replace (' ')

저는 아마도 정말 분명한 것을 놓치고 있을 것입니다. 하지만 누군가 저를 도와주거나 이것을 달성할 수 있는 더 쉬운 방법을 보여준다면 감사하겠습니다.

저는 변수를 명령어에 파이프라인으로 연결하고 그런 식으로 제거하려고 했지만, 제가 본 예들 중 어느 것도 작동하지 않았습니다. 훨씬 쉬워 보이지만 말이죠.

Replace연산자는 어떤 것을 다른 것으로 교체하는 것을 의미합니다. 제거 기능과 혼동하지 마십시오.

또한 연산자가 처리한 결과를 변수 또는 다른 연산자에게 보내야 합니다.둘 다 아니다..Replace(),도 아니다-replace원래 변수를 수정합니다.

모든 공백을 제거하려면 '공백 문자열로 공백 기호 바꾸기'를 사용합니다.

$string = $string -replace '\s',''

줄의 시작과 끝에 있는 모든 공백을 제거하고 이중 및 더 많은 공백 또는 탭 기호를 스페이스바 기호로 바꾸려면 다음을 사용합니다.

$string = $string -replace '(^\s+|\s+$)','' -replace '\s+',' '

아니면 더 토착적인.System.String방법

$string = $string.Trim()

Regexp가 선호됩니다.' ''스페이스바' 기호만 의미합니다.'\s'는 '스페이스바, 탭 및 기타 공간 기호'를 의미합니다.참고:$string.Replace()'정상'이 대체됩니까?$string -replace보다 무겁지만 기능적인 RegEx를 대체할 수 있습니까?

ReGEx에는 점()과 같은 특수 기호가 있습니다..), 중괄호([]()), 슬래시(\), 모자(^), 수학 기호(+-) 또는 달러 기호($탈출이 필요한 것. ( )'my.space.com' -replace '\.','-'=>'my-space-com'숫자가 있는 달러 기호(예:$1) 오른쪽 부분에 주의하여 사용해야 합니다.

'2033' -replace '(\d+)',$( 'Data: $1')
Data: 2033

업데이트: 또한 사용할 수 있습니다.$str = $str.Trim()와 함께TrimEnd()그리고.TrimStart()자세한 내용은 시스템을 참조하십시오.MSDN 페이지를 문자열로 지정합니다.

거의 다 됐어요.다음을 사용하여 빈 공간을 제거할 수 있습니다.replace다음과 같은 방법:

$answer.replace(' ','')

바꾸기 메서드의 두 번째 따옴표 집합 사이에 공백이나 문자가 있을 필요는 없습니다(흰색 공백을 아무것도 없는 것으로 대체).

시스템트림, 트림 종료 및 트림 시작 방법도 있습니다.문자열 클래스.자르기 방법을 사용하면 제거할 문자를 선택적으로 지정할 수 있는 동시에 문자열의 앞 부분과 뒤 부분에서 공백(유니코드 고유의 몇 개)을 제거합니다.

#Note there are spaces at the beginning and end
Write-Host " ! This is a test string !%^ "
 ! This is a test string !%^
#Strips standard whitespace
Write-Host " ! This is a test string !%^ ".Trim()
! This is a test string !%^
#Strips the characters I specified
Write-Host " ! This is a test string !%^ ".Trim('!',' ')
This is a test string !%^
#Now removing ^ as well
Write-Host " ! This is a test string !%^ ".Trim('!',' ','^')
This is a test string !%
Write-Host " ! This is a test string !%^ ".Trim('!',' ','^','%')
This is a test string
#Powershell even casts strings to character arrays for you
Write-Host " ! This is a test string !%^ ".Trim('! ^%')
This is a test string

TrimStart(트리밍 시작) 및 TrimEnd(트리밍 종료)는 문자열의 시작 또는 끝만 트리밍하는 것과 동일한 방식으로 작동합니다.

사용할 수 있는 항목:

$answer.replace(' ' , '')

또는

$answer -replace " ", ""

사용할 수 있는 모든 공백을 제거하려면 다음을 수행합니다.

$answer -replace "\s", ""

문자열이 다음과 같은 경우

$STR = 'HELLO WORLD'

그리고 'HELLO'와 'WORLD' 사이의 빈 공간을 제거하려고 합니다.

$STR.replace(' ','')

replace문자열을 사용하고 공백을 빈 문자열(길이 0)로 대체합니다. 즉, 공백은 삭제됩니다.

언급URL : https://stackoverflow.com/questions/24355760/removing-spaces-from-a-variable-input-using-powershell-4-0

반응형