繁体   English   中英

Powershell子串设置特定的单元格长度

[英]Powershell Substring Setting Specific Cell Length

一直在努力试图修剪/删除在CSV文件的具体行(结果)数据到特定的长度。 不断收到“子字符串超载”。 有任何想法吗?

$Csv = Import-Csv $FileIn
$CsvNew = ForEach($Row in $Csv){
$Row.Results.Substring((0,[System.Math]::Min(254,$Row.Results.Length)))}

看起来像你的子字符串使用一个简单的错误。 删除括号中的一个。

来自:

$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 )
}

最后一个代码段实际上将编辑$ Csv变量内容,以将您的结果列修剪为最多254个字符。 (尽管它不会导出到文件中。为此,您将需要使用ExportTo-CSV Cmdlet导出新的$ Csv内容)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM