0

如果我在 Windows 中手动运行以下命令,它会运行良好并创建连接目录。

mklink /j "c:\Users\userid\OneDrive - Enterprise 365\backup\C\Users\userid\test" c:\Users\userid\test

但是,如果我使用 Go 以编程方式执行此操作,使用以下代码,它会返回Local NTFS volumes are required to complete the operation.

mklink := "mklink /j \"c:\\Users\\userid\\OneDrive - Enterprise 365\\backup\\C\\Users\\userid\\test\\\" c:\\Users\\userid\\test"

cmd := exec.Command("cmd", "/c", mklink)
out, err = cmd.CombinedOutput()

我尝试了几种不同的方法,但总是得到相同的结果。

有任何想法吗?

4

1 回答 1

0

我能够通过使用 PowerShell 来让它工作。

mklink := `New-Item -ItemType Junction -Path "c:\\Users\userid\OneDrive - 
Enterprise 365\backup\C\Users\userid\test" -Target c:\\Users\userid\test`

cmd := exec.Command("PowerShell", "-Command", mklink)
out, err = cmd.CombinedOutput()

我假设问题是 GoLang 发送嵌入式引号的方式 -cmd错误地解释了它们。PowerShell 似乎更加“宽容”。

于 2021-02-02T16:38:53.343 回答