Windows cmd.exe与cmd输出

Windows cmd.exe与cmd输出,windows,cmd,cygwin,Windows,Cmd,Cygwin,我正在Windows上运行Cygwin,偶尔需要从Bash调用cmd.exe 然而,我注意到,根据我如何称呼它,我会得到不同的结果 $ cmd.exe /c 'echo "http://asdf.com?a=1&b=2"' "http://asdf.com?a=1&b=2" $ cmd /c 'echo "http://asdf.com?a=1&b=2"' \"http://asdf.com?a=1&b=2\" 为什么会发生这种情况?我注意到,如果您这样称呼它

我正在Windows上运行Cygwin,偶尔需要从Bash调用cmd.exe

然而,我注意到,根据我如何称呼它,我会得到不同的结果

$ cmd.exe /c 'echo "http://asdf.com?a=1&b=2"'
"http://asdf.com?a=1&b=2"

$ cmd /c 'echo "http://asdf.com?a=1&b=2"'
\"http://asdf.com?a=1&b=2\"

为什么会发生这种情况?

我注意到,如果您这样称呼它,它更接近cmd.exe输出。在引号内添加空格将更改输出

$ cmd /c echo 'http://asdf.com?a=1&b=2 '
"http://asdf.com?a=1&b=2 "
更多信息

one or more whitespace characters between the the two quote characters