CD New folder会将您转-6ren">
gpt4 book ai didi

windows - 有没有办法为 "DIR"命令转义空格

转载 作者:数据小太阳 更新时间:2023-10-29 03:42:33 26 4
gpt4 key购买 nike

我知道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))

}

它将返回 the filename, directory name or volume label syntax is incorrect , 任何不带双引号的命令都可以正常工作。

执行cmd /?并阅读以 If /C or /K... 开头的部分那是什么让我说cmd /C不允许双引号

最佳答案

所以这可能是一个 exec.Command 问题,执行以下工作

command := exec.Command("cmd", "/C", "dir", "C:\Users\pyed\Desktop\new folder")

是的,您根本不需要转义空间。

关于windows - 有没有办法为 "DIR"命令转义空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34397567/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com