【go】exec.command 执行命令报错: unrecognized token: "".read", 怀疑exec包的bug

该命令直接在终端运行是可以的### 问题描述

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

newDbName="C:\\Users\\ma\\Desktop\\sqlite3\\malformed\\root\\test.db"

path = "C:\\Users\\ma\\Desktop\\sqlite3\\malformed\\root"

dmt := fmt.Sprintf("/c %s&cd %s&sqlite3.exe %s \".read tmp.sql\"", path[0:2], path, newDbName)

cmd := exec.Command("cmd.exe", dmt)

out1, err := cmd.CombinedOutput()

if err != nil{

fmt.Println(err)

}

不用转义符也不行。

newDbName = "C:\\Users\\ma\\Desktop\\sqlite3\\malformed\\root\\test.db"

path = "C:\\Users\\ma\\Desktop\\sqlite3\\malformed\\root"

dmt := fmt.Sprintf(`%s&cd %s&sqlite3.exe %s ".read tmp.sql"`, path[0:2], path, newDbName)

cmd := exec.Command("cmd.exe", dmt)

out1, err := cmd.CombinedOutput()

if err != nil{

fmt.Println(err)

}

你期待的结果是什么?实际看到的错误信息又是什么?

本来是要输出test.db文件,倒是报错了, unrecognized token: "".read"

cmd打印出來是這樣的:C:\windows\system32\cmd.exe /c C:\Users\ma\Desktop\sqlite3\malformed\root\sqlite3.exe C:\Users\ma\Desktop\sqlite3\malformed\ root\test.db ".read tmp.sql"

read := ".read tmp.sql"

cmd := exec.Command("cmd.exe", "/c", "cd", tmpPath, "&", sql3, newDbName, read)

回答

以上是 【go】exec.command 执行命令报错: unrecognized token: "".read", 怀疑exec包的bug 的全部内容, 来源链接: www.h5w3.com/115169.html

回到顶部