2goarray 适用于 cmd 但不适用于 powershell

我正在尝试使用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 无法识别为图标的数据。

作为参考,是工作 icon.go,是由 powershell 产生的损坏/损坏的,是我正在使用的图标。

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


qq_花开花谢_0
浏览 227回答 1
1回答

catspeake

您面临的挑战是在 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 可以做的所有事情,而且通常更多,但对于您的示例,这似乎是更好的解决方案。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go