Powershell脚本在输出中导致奇怪的字符

时间:2017-02-16 16:56:40

标签: powershell

我有这个脚本:

# Read in the RESOURCE ID values I want to locate
$TextToFind = Get-Content -Path .\ResourceIDs.txt

$Text = ""
$PathArray = @()
$Results = ".\ResultsResourceIDs.txt"

# Now iterate each of these text values
$TextToFind | ForEach-Object {
    $Text = $_
    Write-Host "Checking for: " $Text

    If ((Get-Content .\Resources.rc) | Select-String -Pattern $Text) {
        $PathArray += $Text + "¬Found"
    }
    Else {
        $PathArray += $Text + "¬Not Found"
    }
}



Write-Host "Contents of ArrayPath:"
$PathArray | ForEach-Object {$_}

$PathArray | % {$_} | Out-File $Results

工作正常。但生成的文本文件包含以下内容:

IDR_ANNOUNCE_TEXT¬Not Found
IDC_BUTTON_UNDO¬Found
IDS_STR_CBS2¬Not Found

为什么它有奇怪的角色?

1 个答案:

答案 0 :(得分:2)

这是由于编码,您应该使用set_content CmdLet,如果需要,您可以使用-encoding param。

$PathArray | % {$_} | Set-Content $Results -Encoding UTF8