这更像是一种烦恼而不是问题,但我非常想了解这里的语义。
我想做的就是在一个运行在bash会话下的临时命令提示符会话中运行任意命令。
我的成功率是50/50,因为有些命令按预期工作,而其他命令则不尽如人意。
我认为问题可能在于参数没有正确对齐(即缺失或合并的参数)。
我将尝试通过一系列命令和响应来解释我所谓的奇怪。(我正在尝试让单词test在屏幕上打印出来。)
我在GNU bash, version 3.1.0(1)-release (i686-pc-msys) Bundled with Git-1.8.4下运行这些命令:
第一次尝试:
$ cmd /c echo test
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
c:\>
第二次尝试:
$ cmd '/c echo test'
test"
第三次尝试:
$ cmd "/c echo test"
test"
第四次尝试:
$ cmd /c\ echo\ test
test"
第五次尝试:$ cmd "/c echo" test
'echo" test' is not recognized as an internal or external command,
operable program or batch file.
由于这些行为对我来说非常不直观,让我感到很烦恼!我真的很感激任何指导或对这些行为的深入理解。
编辑: 有一个类似的问题,但实际上并不相同,主要是因为它是关于通过CMD /C运行不需要任何参数的批处理文件。它并没有真正回答我的问题,即如何正确地向Windows命令行应用程序提供参数,即使例子是关于CMD /C的,这里的答案也可以适用于许多其他Windows命令行应用程序。
cmd /c echo
变体在 cygwin 下可以工作。 - mockinterface