无法在 Golang os.Arg 变量中使用反斜杠`\`

Unable to use backslash `\` in Golang os.Arg variable

我在 Golang 中编写了一个程序,我试图在启动我的程序时使用一个文件作为第一个参数。

例如:./goprogram.exe C:\Acidic\image.png

当我的程序尝试使用 os.Arg[1] 变量(应该是 link 到 image.png 文件时,它 returns 字符串没有任何反斜杠 (C:Acidicimage.png).

如何在不转义字符的情况下使用参数的整个字符串?

我做了一个小例子:

package main

import (
    "fmt"
    "os"
)

func main() {
    if len(os.Args) >= 2 {
        fmt.Println(os.Args[1])
    }
}

I 运行 go run args.go C:\Users\image.png 并输出 C:Usersimage.png

将任何参数放在引号之间:

./goprogram.exe "C:\Acidic\image.png"

问题似乎出在您的 shell 上。尝试引用文件路径:

./goprogram.exe 'C:\Acidic\image.png' # prevents escape sequence execution

类型为 C:\Acidic\image.png 的字符串(带有单个 \'s)在 Go 中不是有效的字符串(无效的转义序列 \A,等等),甚至无法编译。