使用-File时,PowerShell switch语句使用哪种编码?

时间:2018-10-19 18:31:14

标签: powershell

使用-File时,PowerShell switch语句使用什么编码?它基本上是从文件中读取的,因此我希望可以对应用于读取的字节的编码进行一些控制?

我的意思不是Get-Content等,而是switch语句,例如:

switch -File ~\Desktop\demo.md -Regex
{
    '^$'
    {
        'Blank line'
    }

    '^#\s(.*)$'
    {
        'Heading'
    }

    '^-(.*)$'
    {
        'Bulleted list'
    }

    default
    {
        'Normal line'
    }
}

根据定义,将读取的字节转换为解释的字符会使用某种编码,对吧?

1 个答案:

答案 0 :(得分:1)

开关中的-file选项很少使用,但确实提供了速度和内存使用方面的优势。据我所知,目前尚无确切的编码。

我们在第3版PowerShell中的第171页上使用的示例使用Out-File创建将在switch语句中使用的文件。 Out-File默认为Unicode,因此我将 ASSUME 设置为switch -file也使用Unicode。

如果需要控制编码,或者文件似乎无法正确读取,则恢复为使用Get-Content。

我再说一遍,我对Unicode的假设是基于PowerShell帮助系统信息,而不是任何明确的知识。