PowerShell实现指定文件夹TXT自动修复换行与240位校验需求
实现TXT文件错误换行自动修复的PowerShell方案
完全可以实现你的需求,现有脚本存在几个局限:只能处理单个指定文件、仅将结果输出到控制台未保存、仅处理两行拼接为240位的场景,无法应对多行拆分的错误换行。下面是优化后的脚本,可自动遍历指定文件夹内的所有TXT文件,修复所有不符合240位长度的错误换行:
# 指定要处理的文件夹路径 $targetFolder = "C:\你的目标文件夹路径" $expectedLength = 240 # 遍历文件夹内所有TXT文件 Get-ChildItem -Path $targetFolder -Filter *.txt | ForEach-Object { $filePath = $_.FullName # 读取文件全部内容(忽略原换行符,因为错误换行是无效的) $content = Get-Content -Path $filePath -Raw -Encoding Default # 移除所有换行符和空白行 $cleanContent = $content -replace "`r`n|`n|`r", "" -replace "^\s+$", "" # 按240位分割内容,生成正确的行 $fixedLines = for ($i = 0; $i -lt $cleanContent.Length; $i += $expectedLength) { $end = [Math]::Min($i + $expectedLength, $cleanContent.Length) $cleanContent.Substring($i, $end - $i) } # 保存修复后的文件(这里生成带_fixed后缀的文件,避免覆盖原文件) $fixedFilePath = $filePath -replace "\.txt$", "_fixed.txt" $fixedLines | Set-Content -Path $fixedFilePath -Encoding Default Write-Host "已修复文件:$fixedFilePath" }
脚本说明:
- 指定文件夹:修改
$targetFolder为你实际的文件夹路径 - 读取内容:使用
-Raw参数读取文件全部内容,避免原错误换行的干扰 - 清理内容:移除所有换行符和空行,确保内容是连续的字符串
- 分割生成行:按240位长度逐段分割,生成符合要求的每行内容
- 保存文件:生成带
_fixed后缀的新文件,防止误覆盖原文件(若需要直接覆盖,可将$fixedFilePath改为$filePath)
注意事项:
- 确保脚本运行时对目标文件夹有读写权限
- 建议先在测试文件上验证效果,再批量处理正式文件
- 若文件编码不是默认编码,可调整
-Encoding参数(如UTF8、Unicode等)
内容的提问来源于stack exchange,提问作者Lucas Alexandre Vieira de Alme
相关产品推荐
相关产品推荐

