cmd /C 是什么意思?

290

我理解 cmd,但不理解 cmd /c。我试图从当前目录调用Java程序,我使用的方法是 Runtime.getRuntime().exec("cmd /C java helloworld");,这就引发了我的疑问。


10
各位版主,是否有将此内容移动到适当的堆栈溢出门户网站或子网站的规定?这样,该项目将不会被关闭,并且用户将能够做出更多贡献。我想这应该是类似于超级用户的东西吧? - digitally_inspired
2
我认为这是一个完全合理的问题,适合在SO上提问。 - Andrew Truckle
在一个目录中启动CMD:***CMD /k cd /D C:\\***(其中C:\是所需的路径) - undefined
3个回答

333

你应该关注的部分是 /? ,它应该可以解决你使用该工具时的大多数疑问。

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\>cmd /? 启动新的 Windows XP 命令解释器实例
CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] [[/S] [/C | /K] string]
/C 执行由字符串指定的命令,然后终止 /K 执行由字符串指定的命令,但保留 /S 修改 /C 或 /K 后字符串的处理方式(见下文) /Q 关闭回显 /D 禁用从注册表执行 AutoRun 命令(见下文) /A 导致内部命令的输出到管道或文件为 ANSI /U 导致内部命令的输出到管道或文件为 Unicode /T:fg 设置前景/背景颜色(有关更多信息,请参见 COLOR /?) /E:ON 启用命令扩展(见下文) /E:OFF 禁用命令扩展(见下文) /F:ON 启用文件和目录名完成字符(见下文) /F:OFF 禁用文件和目录名完成字符(见下文) /V:ON 使用 ! 作为分隔符启用延迟环境变量扩展。例如,/V:ON 将允许 !var! 在执行时扩展变量 var。var 语法在输入时扩展变量,在 FOR 循环内部时是一件完全不同的事情。 /V:OFF 禁用延迟环境扩展。

5
还有一个命令可以在输出后使cmd窗口“暂停”:“cmd /c 文件名 & PAUSE”,它与cmd /k有一点不同。 - GorvGoyl
如果给定的命令是一种启动自己循环的服务器,我们应该使用/C还是/K? - redpix_
在Windows 7或Windows Server 2008 R2操作系统中,通过'C# Process'执行命令时,是否必须使用/C参数? - Dinesh Kumar P
1
我来这里是因为它的行为与描述的不一致。我正在从Git Bash和cmd运行,但是任何命令如“dir”都只会让我停留在cmd提示符中而不执行该命令。 - Brad
cmd /? | more ...用于分页显示命令开关 - Prisoner ZERO
要在特定路径下启动CMD,请使用:***CMD /k cd /D C:\\***(其中C:\是所需的路径) - undefined

134

/C 执行指定字符串的命令,然后终止。

您可以通过键入 cmd /? 来获取所有 cmd 命令行开关。


13
为什么要这样做呢?直接调用命令不就好了,比如说“java helloworld”。 - Mike Sadler
4
因为您可能不在命令提示符窗口中,但您想使用命令提示符来执行某个命令。例如,我正在运行一个Bash脚本,希望它执行一些命令,这些命令可以由命令提示符执行,但是Bash不能执行。 - Brad

29
CMD.exe

Start a new CMD shell

Syntax
      CMD [charset] [options] [My_Command] 

Options       

**/C     Carries out My_Command and then
terminates**

来自帮助文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接