Che*_*eso 17 unicode powershell
我正在使用Sandcastle Helpfile Builder生成一个帮助文件(.chm).该项目是一个.shfbproj文件,它是XML格式,与msbuild一起使用.
我想自动更新生成的.chm文件中显示的页脚文本.我用这个片段:
$newFooter = "<FooterText>MyProduct v1.2.3.4</FooterText>";
get-content  -Encoding ASCII $projFile.FullName | 
    %{$_ -replace '<FooterText>(.+)</FooterText>', $newFooter } > $TmpFile
move-item $TmpFile $projFile.FullName -force
Run Code Online (Sandbox Code Playgroud)
定向到$ TmpFile的输出始终是一个多字节字符串.但我不希望这样.如何将输出的编码设置为ASCII?
tom*_*asr 16
您可以在写入文件之前更改$ OutputEncoding变量.另一个选项是不使用>运算符,而是直接管道输出到Out-File并使用-Encoding参数.
Sha*_*evy 11
该>重定向操作符是一个"捷径" Out-File.Out-File默认编码是Unicode,但您可以将其命名为ASCII,因此管道Out-File代替:
Get-Content -Encoding ASCII $projFile.FullName |
    % { $_ -replace '<FooterText>(.+)</FooterText>', $newFooter } |
    Out-File $tmpfile -Encoding ASCII
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           9444 次  |  
        
|   最近记录:  |