在PowerShell中Win32可执行文件输出的字母之间的单个空格

匿名的

我的$ PSVersion输出如下:

Name                           Value
----                           -----
PSVersion                      7.0.1
PSEdition                      Core
GitCommitId                    7.0.1
OS                             Microsoft Windows 10.0.19041
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

如果我跑步

wsl -l

我的输出在控制台中显示为:

Windows Subsystem for Linux Distributions:
Ubuntu-20.04 (Default)
ubuntu-20.04-systemd

如果我跑步

wsl -l | Out-File foo.txt

它在文件中显示为:

W i n d o w s   S u b s y s t e m   f o r   L i n u x   D i s t r i b u t i o n s : 
 
 
 U b u n t u - 2 0 . 0 4   ( D e f a u l t ) 
 
 
 u b u n t u - 2 0 . 0 4 - s y s t e m d 
 

我尝试为Out-File指定不同的输出编码无济于事。我想了解发生了什么以及如何解决它。

谢谢!

mklement0

wsl -l意外使用UTF-16LE(“统一”)字符编码输出,从而导致额外的NUL字节(0x0)得到插入ASCII码字符范围之间(可出现如空格)时,PowerShell的解释输出(它总是做,如果你捕获或重定向的输出;在控制台的显示受到影响),基于存储在所述编码[Console]::OutputEncoding,缺省值为系统的活性OEM代码页。

解决方案是(暂时)设置[Console]::OutputEncoding为matchwsl的输出编码

$orig = [Console]::OutputEncoding
[Console]::OutputEncoding = [System.Text.Encoding]::Unicode # UTF-16LE

wsl -l > foo.txt # > is effectively like Out-File

[Console]::OutputEncoding = $orig

有关自定义功能请参见此答案Debug-String,该功能有助于诊断此类编码问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用嵌入式JRE将Shaded Java(jar)构建到Win32可执行文件中?

来自分类Dev

使用PowerShell进行Win32可执行输出解析

来自分类Dev

mingw32-g++ 编译器如何知道在 WIN32 机器可执行文件中注入系统调用的位置?

来自分类Dev

可执行文件目录与可执行文件之间的区别

来自分类Dev

“ bash可执行文件”和“ bash -c可执行文件”之间的区别

来自分类Dev

可执行文件目录与可执行文件之间的区别

来自分类Dev

rm可执行文件>> dev / null与rm可执行文件之间的区别

来自分类Dev

脚本在转换为 Win 可执行文件后不产生任何输出

来自分类Dev

如何在PowerShell中检查要安装的可执行文件是32位还是64位?

来自分类Dev

访问.NET Core单个文件可执行文件中包含的文本文件

来自分类Dev

Kivy:编译为单个可执行文件

来自分类Dev

从路径中排除单个可执行文件

来自分类Dev

将eval exec与可执行文件名一起使用,该可执行文件名在路径中包含空格

来自分类Dev

节点侦听shell可执行文件输出

来自分类Dev

无法保存来自UNIX可执行文件的输出

来自分类Dev

如何使用 C++ 输出可执行文件

来自分类Dev

是否可以在$ PATH中添加单个可执行文件而不是整个目录?

来自分类Dev

在多台计算机的Windows系统PATH中添加单个python可执行文件?

来自分类Dev

ld链接器的输出可执行文件大于golink输出的可执行文件,为什么?

来自分类Dev

代码对象和可执行文件之间的区别

来自分类Dev

可执行文件和./executable之间的区别

来自分类Dev

在可执行文件之间交换数据

来自分类Dev

chmod + x与sudo可执行文件之间的区别

来自分类Dev

在PowerShell中运行可执行文件而无需键入文件扩展名

来自分类Dev

PowerShell无法识别外部可执行文件

来自分类Dev

使用参数从Powershell脚本运行可执行文件

来自分类Dev

Powershell JAR可执行文件占用实例

来自分类Dev

PowerShell脚本到独立可执行文件

来自分类Dev

需要输入“ Y”的Powershell启动可执行文件

Related 相关文章

  1. 1

    使用嵌入式JRE将Shaded Java(jar)构建到Win32可执行文件中?

  2. 2

    使用PowerShell进行Win32可执行输出解析

  3. 3

    mingw32-g++ 编译器如何知道在 WIN32 机器可执行文件中注入系统调用的位置?

  4. 4

    可执行文件目录与可执行文件之间的区别

  5. 5

    “ bash可执行文件”和“ bash -c可执行文件”之间的区别

  6. 6

    可执行文件目录与可执行文件之间的区别

  7. 7

    rm可执行文件>> dev / null与rm可执行文件之间的区别

  8. 8

    脚本在转换为 Win 可执行文件后不产生任何输出

  9. 9

    如何在PowerShell中检查要安装的可执行文件是32位还是64位?

  10. 10

    访问.NET Core单个文件可执行文件中包含的文本文件

  11. 11

    Kivy:编译为单个可执行文件

  12. 12

    从路径中排除单个可执行文件

  13. 13

    将eval exec与可执行文件名一起使用,该可执行文件名在路径中包含空格

  14. 14

    节点侦听shell可执行文件输出

  15. 15

    无法保存来自UNIX可执行文件的输出

  16. 16

    如何使用 C++ 输出可执行文件

  17. 17

    是否可以在$ PATH中添加单个可执行文件而不是整个目录?

  18. 18

    在多台计算机的Windows系统PATH中添加单个python可执行文件?

  19. 19

    ld链接器的输出可执行文件大于golink输出的可执行文件,为什么?

  20. 20

    代码对象和可执行文件之间的区别

  21. 21

    可执行文件和./executable之间的区别

  22. 22

    在可执行文件之间交换数据

  23. 23

    chmod + x与sudo可执行文件之间的区别

  24. 24

    在PowerShell中运行可执行文件而无需键入文件扩展名

  25. 25

    PowerShell无法识别外部可执行文件

  26. 26

    使用参数从Powershell脚本运行可执行文件

  27. 27

    Powershell JAR可执行文件占用实例

  28. 28

    PowerShell脚本到独立可执行文件

  29. 29

    需要输入“ Y”的Powershell启动可执行文件

热门标签

归档