cmd命令出错

BUG反馈 · 502 次浏览
咿呀杀杀 创建于 2024-09-13 14:34

命令:

"C:\Program Files\IrfanView\i_view64.exe" "C:\Users\76734\Desktop\模版.psd" /convert="C:\Users\76734\Desktop\模版.png"

直接在cmd运行是没问题的,但在这个模块执行会报错:

'C:\Program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。


回复内容
CL 2024-09-13 15:01
#1

这里需要用bat脚本。 因为这个内容是最终拼接成cmd.exe的参数 /C  脚本内容(如果脚本里已经有引号) 或 /C "脚本内容"

如果脚本里带有引号,可能解析出错。 


我刚查到一个/S参数,等试试看看能不能解决一下这个情况。


--

发现不能这么改,会影响现有动作。 有的里面脚本内容是这种带空格的, 目前的处理方式可以打开,如果加了/s会导致这样的没法执行了。😂

加了个判断,如果脚本内容以引号开始,就使用/S处理一下。

CL 最后更新于 2024-09-13 15:25
咿呀杀杀 回复 CL 2024-09-13 16:11 :

我好像试出来了。


假设要通过 cmd.exe /C 来执行这条命令:


"C:\Program Files\IrfanView\i_view64.exe" "模版.psd" /convert="模版.png"


先用双引号把命令裹起来,拼接 cmd /C ,得到:


cmd /C ""C:\Program Files\IrfanView\i_view64.exe" "模版.psd" /convert="模版.png""


然后,用 ^ 转义每个双引号,得到正确的写法:


cmd.exe /C ^"^"C:\Program Files\IrfanView\i_view64.exe^" ^"模版.psd^" /convert=^"模版.png^"^"


咿呀杀杀 最后更新于 2024-09-13 16:16
CL 回复 咿呀杀杀 2024-09-13 16:28 :

上面第二个图是可以的,只是本机没有那个路径所以报错了。 加/S后,把前后用引号括起来就行。

CL 2024-09-13 20:44
#2

更新了1.43.22版,等试下看看 https://getquicker.net/Help/Versions 

回复主贴