dev*_*531 4 c c++ powershell command-prompt
在 C 和 C++ 命令行程序中,在命令提示符或 PowerShell 中运行程序之间有什么区别吗?(例如:异常处理、I/O 速度等)
主要区别:
cmd.exe提供真正的二进制(字节流)管道,以便>重定向运算符可以捕获外部程序的原始字节输出。
从 7.2 版本开始,PowerShell 只使用文本(字符串)与外部程序进行通信,包括输入和输出,这意味着外部程序输出总是被解码为 .NET 字符串,这具有以下含义:
即使只使用 PowerShell 的>操作符将外部程序的输出发送到文件,外部程序输出的每一行都首先被解码为 .NET 字符串,然后在保存到目标文件时再次编码,在这种情况下使用Out-Filecmdlet 的默认编码,>运算符是其有效别名。
这种解码-重新编码循环不仅会减慢速度,还意味着:
对于文本输出,输入字符编码(从外部程序解码)可能与 PowerShell 输出的字符编码不同。
二进制输入和输出从根本上不受支持。
cmd.exewith cmd /c ...(在 Windows 上)和 to /bin/shwith sh -c ...(在类 Unix 平台上。有关更多信息,请参阅此答案。
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |