Windows中PowerShell Here文档与字符串如何转为Windows换行符?
在Windows PowerShell中将UNIX换行符转换为Windows换行符的方法
在Windows系统的PowerShell 7.3.7中,Here文档和多行字符串默认使用UNIX格式的0x0A(\n)换行符,而非Windows标准的0x0D0A(\r\n)。以下是几种实用的转换方法:
方法1:批量替换现有字符串中的换行符
直接通过字符串替换操作,将所有UNIX换行符替换为Windows换行符:
# 处理Here文档字符串 $s $s = $s -replace "`n", "`r`n" # 处理多行字符串 $s2 $s2 = $s2 -replace "`n", "`r`n"
如果需要兼顾跨平台兼容性,也可以使用系统内置的换行符变量[Environment]::NewLine(Windows环境下该变量的值即为\r\n):
$s = $s -replace "`n", [Environment]::NewLine
替换完成后,可通过Format-Hex验证结果:
$s | Format-Hex
此时字节输出中会出现0D 0A的组合,代表已转换为Windows标准换行符。
方法2:创建字符串时直接指定Windows换行符
如果在编写字符串阶段就希望使用Windows换行符,可以手动插入"rn":
# Here文档示例 $s = @" now`r`n is`r`n the "@ # 多行字符串示例 $s2 = "`r`nNow`r`n is`r`n the`r`n "
这种方式适合内容较少、可以逐行控制的场景。
内容的提问来源于stack exchange,提问作者lit
相关产品推荐
相关产品推荐

