我想通过脚本在其默认程序中打开一个文件(特别是视频文件).当我遇到带有空格的文件名时,它被视为几个参数,这并不奇怪:
C:\folder>start test space.avi
The system cannot find the file test.
Run Code Online (Sandbox Code Playgroud)
但是,当我用引号括起文件名时:
C:\folder>start "test space.avi"
Run Code Online (Sandbox Code Playgroud)
而不是在其默认程序(VLC)中打开文件,打开一个新的命令提示符窗口到文件的目录.
打开没有空格或引号的文件会按预期在VLC中打开文件.
我怎么能绕过这个?
我试图让Go程序执行一个添加几个注册表值的vbscript.处理此问题的Go代码如下:
err = exec.Command("cmd.exe", "/c", "registry.vbs").Run()
if err != nil {
fmt.Printf("Error: %s\n", err.Error())
}
Run Code Online (Sandbox Code Playgroud)
当我运行我的Go程序并且它到达执行此vbscript的部分时,绝对没有任何反应.注册表值不会更改,也不会出现错误.如果我尝试运行以下命令它可以正常工作:
cmd.exe /c C:\path\to\file\registry.vbs
Run Code Online (Sandbox Code Playgroud)
我尝试过的事情:
.Output()而不是,.Run()这导致输出等于[ ]有人知道为什么会这样吗?
任何方向将不胜感激.