问题已经定位
iflow-cli在windows平台下调用powershell的Get-Clipboard -Format Image 实现对剪贴板图片的获取
由于powershell的版本差异,只有 v5.x 版本支持 -Format Image 接口,若你的机器上使用的非 v5.x
版本的powershell,会导致无论如何都是 “未从剪切板中找到图片”
如何测试
1.查看powershell版本
PS D:\> $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 19041 2673
2.剪贴一张图片到剪贴板
3.尝试使用Get-Clipboard -Format Image 获取图片信息
PS D:\> Get-Clipboard -Format Image
Tag :
PhysicalDimension : {Width=713, Height=316}
Size : {Width=713, Height=316}
Width : 713
Height : 316
HorizontalResolution : 96
VerticalResolution : 96
Flags : 335888
RawFormat : [ImageFormat: b96b3caa-0728-11d3-9d7b-0000f81ef32e]
PixelFormat : Format32bppRgb
Palette : System.Drawing.Imaging.ColorPalette
FrameDimensionsList : {7462dc86-6180-4c7e-8e3f-ee7333a7a483}
PropertyIdList : {}
PropertyItems : {}
若剪贴版没有图片将没有返回
若powershell不支持将报错
Get-Clipboard: A parameter cannot be found that matches parameter name 'Format'.
解决方法,使用 PowerShell 5.1 版(win10自带)
5.x版本应该都是支持的
有什么影响
5.1版本的ps不支持 && 语法,将会导致以下影响
本人就是因为,5版本ps不支持&&语法,iflow大模型又默认会尝试&&语法 所以升级了ps 到7版本
导致无论如何都不能粘贴图片
鱼和熊掌如何兼得?
- 魔改ps让它同时支持
&&与Get-Clipboard -Format - 魔改iflow源码,将剪贴板图片读取使用的ps硬编码路径为5版本,shell调用的ps硬编码为7版本
- 请求iflow运维把上述问题反馈给开发,让开发适配


