我感觉栽在这上面好多次了……
示例命令: commandStr
"d:/可能包含空格/magick.exe" "E:/可能包含空格/0.psd[0]" -strip -resize "2048x2048>" "C:\...\Temp\2118f16acd3ea04b22c30b7369fd5169.avif" && identify -format "%[fx:w] %[fx:h]" "E:/可能包含空格/0.psd[0]"
在cmd中执行:
输出:
1000 485
可以证明上面的命令是正确的。
在 go:
cmd := exec.Command("cmd.exe", "/c", commandStr)
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Printf("Error: %v\n", err)
fmt.Printf("Output: %s\n", string(output))
return
}
报错1: `Output: '\"d:/可能包含空格/magick.exe\"' �����ڲ����ⲿ���Ҳ���ǿ����еij���
���������ļ���`
乱码我无能为力,但看输出,貌似是转义,这莫名其妙,但我先去掉magick.exe的引号
报错2:
Error: exit status 1
Output: magick.exe: unable to open image '"E:/可能包含空格': Invalid argument @ error/blob.c/OpenBlob/3596.
magick.exe: no decode delegate for this image format `' @ error/constitute.c/ReadImage/746.
问题很简单,路径有空格,并且引号被无视了,为啥?
有明白的大佬吗?
谢谢
上面这样不行吗? 没有window环境验证