我正在尝试使用 PowerShell 替换多个文本文件的某些列中的字符。除了我需要忽略每个文件中的第一行和最后一行之外,我让它工作得很好,但我无法让它工作。
这是我目前所拥有的:
$Location = "C:\Users\gerhardl\Documents\Tenacity\TEMP\POWERSHELL TESTS"
$Data = "$Location\*.TXT"
$Output = "$Location\Fixed"
Get-Item $Data |
ForEach-Object {
$file = $_
$_ |
Get-Content |
ForEach-Object {
$Beginning = $_.Substring(0,105)
$Account = $_.Substring(105,20) -replace "[ABCDEFGHIJKLMNOPQRSTUVWXYZ]", " "
$End = $_.Substring(125)
'{0}{1}{2}' -f $Beginning,$Account,$End
} |
Set-Content -Path (Join-Path $Output $file.Name)
}
我知道有类似的线程,但我的 For Each 循环似乎不能很好地处理这些建议。
最佳答案
您可以使用 -Skip 1
和 -SkipLast 1
:
Get-Content $file | Select-Object -Skip 1 | Select-Object -SkipLast 1
为 PS < 5 编辑:
$text = Get-Content $file | Select-Object -Skip 1
$newText = $text.GetRange(0,($text.Count - 1))
$newText
关于powershell - 忽略文件中的第一行和最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44527727/