2goarray在cmd中起作用,但在powershell中不起作用

问题描述 投票:0回答:1

我正在尝试使用2goarray将.ico文件写入go文件,以便可以在systray中使用它。

我的问题是,这在cmd中有效:

TYPE icon.ico | 2goarray Data icon > icon.go

但是在powershell中运行等效命令不会:

Get-Content .\icon.ico | 2goarray Data icon | Out-File -FilePath .\icon.go -Encoding UTF8

[当我说它不起作用时,我并不意味着会发生错误,我的意思是2goarray生成的数组不正确,它包含systray无法识别为图标的数据。

[供参考,here是工作图标。here是powershell产生的损坏/损坏的图标,here是我正在使用的图标。

我怀疑这与Powershell将事物作为对象传递的方式有关,但我不确定吗?

powershell go cmd icons data-conversion
1个回答
0
投票

您的挑战是在PowerShell中通过管道传输二进制数据,这不是那么简单。我使用此命令测试了您的示例,并获得了“正在工作”的icon.go:

Start-Process 2goarray -ArgumentList "Data icon" -RedirectStandardInput .\icon.ico -RedirectStandardOutput .\icon.go

但是与cmd相比,此解决方案似乎很慢。如果需要的话,也可以从PowerShell中随时调用cmd,这对于您的示例来说出奇地快:

Start-Process cmd -ArgumentList "/c TYPE icon.ico | 2goarray Data icon > icon.go"

通常,从PowerShell调用cmd是一个糟糕的设计,因为PowerShell几乎可以完成cmd可以做的所有事情,而且通常可以做更多的事,但是对于您的示例,这似乎是更好的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.