Windows 有没有一种方法可以逃出这个空间;DIR";命令
我知道Windows 有没有一种方法可以逃出这个空间;DIR";命令,windows,go,cmd,Windows,Go,Cmd,我知道dir要求您对带有空格的目录名进行双引号,但我不得不使用cmd/C,它不尊重双引号 现在,要列出名称中有空格的目录似乎是不可能的,而CD命令根本不关心空格,执行>CD New folder会将您移动到New folder,而不会出现任何问题 编辑 我正试图从一个Go程序调用它 package main import ( "bytes" "fmt" "os/exec" ) // this function wraps up `exec.Command` func
dir
要求您对带有空格的目录名进行双引号,但我不得不使用cmd/C
,它不尊重双引号
现在,要列出名称中有空格的目录似乎是不可能的,而CD
命令根本不关心空格,执行>CD New folder
会将您移动到New folder
,而不会出现任何问题
编辑
我正试图从一个Go
程序调用它
package main
import (
"bytes"
"fmt"
"os/exec"
)
// this function wraps up `exec.Command`
func CommandRunner(cmd string) ([]byte, error) {
// make stdout and stderr buffers to save the output to
var stdout, stderr bytes.Buffer
// make up the command
command := exec.Command("cmd", "/C", cmd)
// set stdout and stderr to the command's stdout and stderr
command.Stdout = &stdout
command.Stderr = &stderr
// start the command and watch for errors
if err := command.Start(); err != nil {
// return the err and stderr
return stderr.Bytes(), err
}
// wait for the command to finish
if err := command.Wait(); err != nil {
// return the err and stderr
return stderr.Bytes(), err
}
return stdout.Bytes(), nil
}
func main() {
cmd := `dir "C:\Users\pyed\Desktop\new folder"`
out, _ := CommandRunner(cmd)
fmt.Println(string(out))
}
它将返回文件名、目录名或卷标语法不正确
,任何不带双引号的命令都可以正常工作
执行
cmd/?
并阅读以If/C或/K..开头的部分。
我说的cmd/C
不允许双引号,因此这可能是一个exec.Command
问题,执行以下操作
command := exec.Command("cmd", "/C", "dir", "C:\Users\pyed\Desktop\new folder")
是的,您根本不需要转义空格。您确定
cmd/c dir“New Folder”
不起作用吗?您可以在命令中使用空格。我刚刚用这个完整的命令提示符进行了测试:C:\Windows\System32>cmd/C dir“C:\program files”/b
请在问题的代码部分编辑以显示您的尝试。为什么你“被迫”使用cmd/c
,你到底想做什么?@magoo我之所以被迫,是因为我是通过GO执行它的:a)用于获取目录列表。b) 直接调用命令,而不是在cmd.exe中运行命令。