반응형
PowerShell: 문자열을 N자로 제한하는 방법은 무엇입니까?
10자 이상의 문자열을 10자로 제한하려고 하면 substring이 불만을 제기합니다.길이를 테스트할 수 있다는 것은 알지만 필요한 작업을 수행할 단일 cmdlet이 있는지 알고 싶습니다.
PS C:\> "12345".substring(0,5)
12345
PS C:\> "12345".substring(0,10)
Exception calling "Substring" with "2" argument(s): "Index and length must refer to a location within the string.
Parameter name: length"
At line:1 char:18
+ "12345".substring( <<<< 0,10)
cmdlet이 정확히 필요합니까?저는 당신이 왜 길이가 긴 것을 싫어하는지 궁금합니다.스크립트의 일부라면 괜찮아 보입니다.
$s = "12345"
$s.substring(0, [System.Math]::Min(10, $s.Length))
하위 문자열 함수를 사용하면 제한이 있으므로 먼저 문자열의 길이를 캡처해야 합니다.이것이 효과가 있다면 당신은 그 제한 없이 그것을 할 수 있습니다.
다음은 문자열의 처음 5자를 반환합니다.
"1234567890"[0..4] -join "" # returns the string '12345'
원하는 길이보다 짧은 문자열에서도 작동합니다.
"1234567890"[0..1000] -join "" # returns the string '1234567890'
다른 라이브러리를 로드하고 사용할 수 있으며 문자열 기능을 사용할 수 있습니다. 예를 들어 시각적 기본 문자열 기능은 원하는 작업에 적합합니다.
세션당 한 번 호출>[void][reflection.assembly]::LoadWithPartialName("microsoft.visualbasic")
그런 다음 다양한 vb 문자열 함수를 사용합니다.
>[microsoft.visualbasic.strings]::left("12345",10)
12345
또는
>[microsoft.visualbasic.strings]::mid("12345",1,10)
12345
이전 답변은 제 목적에 맞지 않았습니다(위반하지 마십시오!). 그래서 저는 위의 Unmales 제안을 받아 공유할 것으로 생각하는 기능으로 롤업했습니다.
function Trim-Length {
param (
[parameter(Mandatory=$True,ValueFromPipeline=$True)] [string] $Str
, [parameter(Mandatory=$True,Position=1)] [int] $Length
)
$Str[0..($Length-1)] -join ""
}
사용 예:
"1234567" | Trim-Length 4 # returns: "1234"
"1234" | Trim-Length 99 # returns: "1234"
Dmitry의 답변 덕분에 함수로 만들어서 0 based가 아닌 1 based로 만들었습니다.
function acme-substr ([string]$str, $start, $end) {
$str.substring($start-1, [System.Math]::Min($str.Length-1, $end))
}
> $foo="0"*20
> $foo
00000000000000000000
> acme-substr $foo 1 5
00000
패딩부터.
$s = "12345"
$s.PadRight(10).Substring(0,10).TrimEnd() # returns "12345"
언급URL : https://stackoverflow.com/questions/2336435/powershell-how-to-limit-string-to-n-characters
반응형
'programing' 카테고리의 다른 글
| MariaDB10.4 - W10 머신, 슬레이브 1개 + 일반 독립형 DB 몇 개 - 방법? (0) | 2023.08.13 |
|---|---|
| 포트 바인딩에 도커에서 IPv4를 사용하도록 설정 (0) | 2023.08.13 |
| 사파리에만 스타일을 적용할 수 있는 방법이 있습니까? (0) | 2023.08.13 |
| 종료된 컨테이너의 로그를 확인하는 도커 (0) | 2023.08.13 |
| PHP 사이트에서 xss 공격을 피하기 위한 최상의 방법은 무엇입니까? (0) | 2023.08.13 |