我想在 Windows(帶有 Go 1.3.1 的 Windows 8.1)中編寫一個批處理助手來使用 exiftool.exe。我在 Go 中運行命令行的原因是我試圖訪問一些我從其他 Web 端檢索的 EXIF 信息。我只想寫回圖片EXIF。這是我的代碼段。 str_abs, _ := filepath.Abs(target_path) str_title := fmt.Sprintf("-title=\"%s\"", ext_str) stdout, err := exec.Command("cmd", "/c", "exiftool.exe", str_title, "-E", str_abs).Output()但是我發(fā)現(xiàn)參數(shù)中總是有一個附加引號,因此結(jié)果將與:exiftool.exe -title=""TITLE"" -E TARGET_FILE知道它是怎么發(fā)生的嗎?或有關(guān)如何處理這樣的參數(shù)的任何建議。筆記:之所以我把參數(shù)和字符串分開,又把它組合起來,是因為命令行需要使用unicode字符串,比如Chinese String。exiftool.exe 僅適用于帶有“&#%d;”的命令行 在 Windows 中使用漢字編碼,所以我對此做了更多處理。如果我使用非 unicode 也會發(fā)生錯誤,例如(標(biāo)題顯示“1234”而不是 1234) stdout, err := exec.Command("cmd", "/c", "exiftool.exe", "-title", "1234", str_abs).Output()錯誤代碼:運行命令錯誤:退出狀態(tài) 1。-----更新@VonC 2014/09/10----------------------------------- --------------嗨,VonC,我試圖做與您提供的代碼相同的事情,但它對我不起作用。我對命令行代碼頁很好奇,我在 477(US) 950 (Big5) 中嘗試過,兩者都不適合我。有兩件事我想討論。中文字必須改成&#%d; 否則會錯誤顯示。例如:世界 -> 世界檢查這個錯誤的編碼圖片是否有編碼顯示錯誤。即使我嘗試過,但它仍然在我的圖片標(biāo)題中顯示額外的“。參考這個額外的報價圖片。我的代碼示例如下:output, err := exec.Command(`d:\exiftool.exe`,`-title="test 2世界"`,//If it not trasnfer from 世界 -> 世界 it could not display correctly."-E", "test.jpg").CombinedOutput()if err != nil { fmt.Println(err.Error())}fmt.Println(string(output))
- 2 回答
- 0 關(guān)注
- 418 瀏覽
添加回答
舉報
0/150
提交
取消