You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免PowerShell中\t被转换为制表符

解决PowerShell读取配置文件时转义字符被解析的问题

当你用以下命令读取配置文件时:

(Get-Content C:\<ConfigFolder>\basic.conf | ConvertFrom-StringData)."FileLocation"

配置文件中FileLocation="C:\temp"会被解析成C: emp,这是因为ConvertFrom-StringData会将\t识别为制表符(转义字符)。要保留原始路径值,可通过以下两种方式解决:

方法一:修改配置文件(若允许)

将配置文件中的路径改为转义格式,把单个反斜杠替换为两个:

UpdatedTime="2024-03-26 09:55:00"
FileLocation="C:\\temp"

这样ConvertFrom-StringData会将\\t解析为单个\t,最终得到正确的C:\temp。

方法二:手动解析配置文件(无需修改原文件)

如果不能修改配置文件,可跳过ConvertFrom-StringData,用正则表达式直接提取键值对,避免转义处理:

# 读取配置文件并解析每一行
$config = Get-Content C:\<ConfigFolder>\basic.conf | ForEach-Object {
    if ($_ -match '^(\w+?)="(.*)"$') {
        [PSCustomObject]@{
            Key = $matches[1]
            Value = $matches[2]
        }
    }
}

# 获取FileLocation的原始值
$fileLocation = ($config | Where-Object Key -eq 'FileLocation').Value

执行上述代码后,$fileLocation会直接保留C:\temp的原始格式。

内容的提问来源于stack exchange,提问作者Sanjaya Balasuriya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 16:04:51