하위 문자열 사용의 단순한 실수처럼 보입니다. 괄호 중 하나를 제거하십시오.
은에서 :
$Row.Results.Substring((0,[System.Math]::Min(254,$Row.Results.Length)))}
사람 : 가독성을 위해서
$Row.Results.Substring(0,[System.Math]::Min(254,$Row.Results.Length))}
, 당신은 당신의 문자열 변수에 계산을 넣을 수 있었다. 오류가 더욱 분명하게 드러났습니다.
$Csv = Import-Csv $FileIn
$CsvNew = ForEach($Row in $Csv)
{
$MaxLength = [System.Math]::Min(254,$Row.Results.Length)
$Row.Results.Substring(0,$MaxLength)
}
편집 :
마지막으로
, 그 $ CsvNew (나는 당신의 예에서 걸린) 매장 아무것도주의주세요. CSV 행 내용을 편집하려면 대신이 내용을 사용하십시오.
$Csv = Import-Csv $FileIn
$Csv | ForEach-Object {
$MaxLength = [System.Math]::Min(254,$_.Results.Length)
$_.Results.Substring(0,$MaxLength)
}
이 마지막 조각은 실제로 254 자 최대 결과 열을 트림 $에게 된 CSV 변수 내용을 편집합니다. (이 경우 파일로 내보낼 수 없으므로 ExportTo-CSV Cmdlet을 사용하여 새 $ Csv 콘텐츠를 내 보내야합니다.
고마워요! 그것은 내가 가진 코드를 해결합니다. 나는 아직도 표를 놓치고 있다고 생각한다. 출력은 다음과 같습니다. ' 결과 필드 입력 = sometext 출력 = 8 ' 여분의 데이터를 잘라내는 필드 크기를 제한하는 것으로 촬영했습니다. 예를 들어 4로 설정하면 output = some이됩니다. – user2542412
방금 추가 한 마지막 스 니펫을 살펴보십시오. $ Csv 변수 내용을 편집하려면 파이프를 통해이 작업을 수행해야합니다. 마지막 예제는 실제로 값을 다듬을 것이고 수정은 셀에 직접 수행됩니다. –
굉장! 고맙습니다! – user2542412