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
'programing' 카테고리의 다른 글
'애플리케이션 ID: com.android를 확인할 수 없습니다.'를 수정하는 방법도구, 도구, 도구, 실행Pk 제공예외:변형의 주요 아티팩트에 대한 출력 없음:' (0) | 2023.08.07 |
---|---|
cmake를 연결할 수 없기 때문에 mariadb를 설치할 수 없습니다. (0) | 2023.08.02 |
BIGINT UNSIGNED 값이 범위를 벗어났습니다. (0) | 2023.08.02 |
NPM: "npm link" 모듈을 찾을 수 없는 경우 (0) | 2023.08.02 |
Angular 6 Unit Tests: All\nReferenceError: 뒤에 오류가 발생했습니다.변수를 찾을 수 없음: $가 던져졌습니다. (0) | 2023.08.02 |