无法在 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
,等等),甚至无法编译。
我在 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
,等等),甚至无法编译。