如何使用PowerShell在文件开头添加内容并保留原有换行符
问题原因
Get-Content默认会将文件内容按行拆分,返回字符串数组。直接将字符串与该数组拼接时,PowerShell会默认用空格作为分隔符把数组合并为单个字符串,因此原文件的换行符会被替换为空格。
修复方案
方案1:使用-Raw参数读取完整文件(推荐)
-Raw参数会让Get-Content将整个文件作为单个字符串读取,完整保留所有原始换行符,修改后代码如下:
# 新增-Raw参数,读取时保留原始换行 $r = Get-Content -Path "C:\Users\UReddy\Desktop\travelling - Copy (2).txt" -Raw # 注意Windows下标准换行是`r`n,避免换行异常 $te = "Hello `r`n" + $r $te | Out-File "C:\Users\UReddy\Desktop\travelling - Copy (3).txt"
方案2:手动拼接换行(适用于需要逐行处理内容的场景)
如果你需要对每行内容单独处理再拼接,可以用系统默认换行符手动合并数组:
$r = Get-Content -Path "C:\Users\UReddy\Desktop\travelling - Copy (2).txt" # 用系统换行符拼接所有行,还原原有换行效果 $mergedContent = $r -join [Environment]::NewLine $te = "Hello `r`n" + $mergedContent $te | Out-File "C:\Users\UReddy\Desktop\travelling - Copy (3).txt"
内容的提问来源于stack exchange,提问作者uday kiran
相关产品推荐
相关产品推荐

