从文件的每一行中删除第一个字符时出现 Powershell 错误

Powershell error during removal of first character from each line of a file

在此先感谢您的帮助。我找到了一种删除文件中每一行的第一个字符的方法:

Powershell -command "get-content %INFILE% | foreach {$_.substring(1)}" > %OUTFILE%

我能够获取输出文件,但是,我不断收到这些错误:

当您在输入文件中有空行(甚至可能是尾随 LF)时会发生这种情况。在这种情况下,行长度将为零(因为 Get-Content 从每行中删除 CRLF),因此 String.Substring() 的起始索引 1 将无效,正如错误消息所述。

可能的修复:

Powershell -command "get-content %INFILE% | foreach {$_.Substring([Math]::Min(1, $_.Length))}" > %OUTFILE%

我正在使用函数 Math.Min() 来确保起始索引不会大于行长度。