使用-File时,PowerShell switch语句使用什么编码?它基本上是从文件中读取的,因此我希望可以对应用于读取的字节的编码进行一些控制?
我的意思不是Get-Content等,而是switch语句,例如:
switch -File ~\Desktop\demo.md -Regex
{
'^$'
{
'Blank line'
}
'^#\s(.*)$'
{
'Heading'
}
'^-(.*)$'
{
'Bulleted list'
}
default
{
'Normal line'
}
}
根据定义,将读取的字节转换为解释的字符会使用某种编码,对吧?
答案 0 :(得分:1)
开关中的-file选项很少使用,但确实提供了速度和内存使用方面的优势。据我所知,目前尚无确切的编码。
我们在第3版PowerShell中的第171页上使用的示例使用Out-File创建将在switch语句中使用的文件。 Out-File默认为Unicode,因此我将 ASSUME 设置为switch -file也使用Unicode。
如果需要控制编码,或者文件似乎无法正确读取,则恢复为使用Get-Content。
我再说一遍,我对Unicode的假设是基于PowerShell帮助系统信息,而不是任何明确的知识。