亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Windows命令行在Golang中參數中附加引號

Windows命令行在Golang中參數中附加引號

Go
開滿天機 2021-08-16 16:09:53
我想在 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()但是我發現參數中總是有一個附加引號,因此結果將與:exiftool.exe -title=""TITLE"" -E TARGET_FILE知道它是怎么發生的嗎?或有關如何處理這樣的參數的任何建議。筆記:之所以我把參數和字符串分開,又把它組合起來,是因為命令行需要使用unicode字符串,比如Chinese String。exiftool.exe 僅適用于帶有“&#%d;”的命令行 在 Windows 中使用漢字編碼,所以我對此做了更多處理。如果我使用非 unicode 也會發生錯誤,例如(標題顯示“1234”而不是 1234)    stdout, err := exec.Command("cmd", "/c", "exiftool.exe", "-title", "1234", str_abs).Output()錯誤代碼:運行命令錯誤:退出狀態 1。-----更新@VonC 2014/09/10----------------------------------- --------------嗨,VonC,我試圖做與您提供的代碼相同的事情,但它對我不起作用。我對命令行代碼頁很好奇,我在 477(US) 950 (Big5) 中嘗試過,兩者都不適合我。有兩件事我想討論。中文字必須改成&#%d; 否則會錯誤顯示。例如:世界 -> 世界檢查這個錯誤的編碼圖片是否有編碼顯示錯誤。即使我嘗試過,但它仍然在我的圖片標題中顯示額外的“。參考這個額外的報價圖片。我的代碼示例如下: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 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

fmt.Printf("%q", "somestring") => "somestring"


查看完整回答
反對 回復 2021-08-16
  • 2 回答
  • 0 關注
  • 430 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號