Powershell脚本在不打算输出中文字符时输出

时间:2014-02-09 23:54:33

标签: powershell

我编写了一个脚本,该脚本对运行任何命令所花费的时间进行了基准测试,例如ping google.com -n 1,我输出有问题。< / p>

当我在交互式shell中运行代码时,它很好,但是当我将它作为powershell .ps1脚本运行时,它会输出这样的中文字符:

  

〱䘠扥ㄠ㨰㈵泻湩潧杯敬挮浯ჰऱ㌲⸹ㄷ㔳獭਍

这是ping google.com -n 1

的“结果”

毋庸置疑,我为何会这样做有点困惑......

有什么想法吗?


这是我的代码:

$command = Read-Host "Enter command"

"DateTime`tCommand`tTime Taken" | Out-file "$($command -replace '[^A-Za-z]','').csv"

While (1) {

    $time = date -f "dd MMM HH:mm"

    $cmdtime = [string](
    Measure-Command {iex $command}
    ).TotalMilliseconds + "ms"

   "$($time)`t$($command)`t$($cmdtime)" | Out-File "$($command -replace '[^A-Za-z]','').csv" -a

   Sleep 60;
}

1 个答案:

答案 0 :(得分:0)

发生这种情况的原因是因为第一个Out-File没有设置-Encoding ASCII参数,导致使用非ASCII编码创建文件!