2goarray 适用于 cmd 但不适用于 powershell
2goarray works in cmd but not powershell
我正在尝试使用 2goarray to write a .ico file to a go file so that I can use it in 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 生成的数组不正确,它包含系统托盘无法识别为图标的数据。
作为参考,here is the working icon.go, here is the broken/corrupted one produced by powershell, and here 是我使用的图标。
我怀疑它与 powershell 将事物作为对象传递的方式有关,但我不确定?
您的挑战是在 PowerShell 中传输二进制数据,这不是那么简单。我用这个命令测试了你的例子,我得到了 "working" 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 可以做的所有事情,而且通常更多,但对于您的示例,这似乎是更好的解决方案。
我正在尝试使用 2goarray to write a .ico file to a go file so that I can use it in 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 生成的数组不正确,它包含系统托盘无法识别为图标的数据。
作为参考,here is the working icon.go, here is the broken/corrupted one produced by powershell, and here 是我使用的图标。
我怀疑它与 powershell 将事物作为对象传递的方式有关,但我不确定?
您的挑战是在 PowerShell 中传输二进制数据,这不是那么简单。我用这个命令测试了你的例子,我得到了 "working" 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 可以做的所有事情,而且通常更多,但对于您的示例,这似乎是更好的解决方案。