我编写了一个脚本,该脚本对运行任何命令所花费的时间进行了基准测试,例如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;
}
答案 0 :(得分:0)
发生这种情况的原因是因为第一个Out-File
没有设置-Encoding ASCII
参数,导致使用非ASCII编码创建文件!