【问题标题】:"start %comspec% /c script.cmd" vs "start cmd /C script.cmd"“启动 %comspec% /c script.cmd”与“启动 cmd /C script.cmd”
【发布时间】:2011-11-14 11:59:23
【问题描述】:

以下命令有什么区别:

start %comspec% /c script.cmd
start cmd /C script.cmd

我需要 script.cmd 的 cmd 窗口在 script.cmd 完成后自动关闭。

【问题讨论】:

    标签: windows batch-file cmd


    【解决方案1】:

    %comspec% 只是指向 cmd.exe,所以两个命令会做同样的事情。除了/C是正确的,这会在执行后关闭命令提示符

    【讨论】:

    • 顺便说一句:如果你想运行 second.cmd 和 script.cmd 第二行将不起作用。它只会将“script.cmd”作为参数传递给 second.cmd
    【解决方案2】:

    不同之处在于“%comspec%”应该扩展为默认的命令解释器,而“cmd”搜索一个 cmd 可执行文件并调用它。大多数时候它们是相同的。

    但如果当前目录中有 cmd 可执行文件(cmd.exe、cmd.bat 等),则会调用该 cmd 可执行文件。

    我会选择使用 %comspec%

    【讨论】:

      【解决方案3】:

      对于 WindowsXP-SP2 上的非管理员用户。

      • %comspec% 从 %WINDIR%\System32 开始。
      • 'cmd' 从用户家开始,例如C:\Document And Settings\USER1。

      【讨论】:

      • 不完全正确。 %comspec% 是用 cmd.exe 的绝对路径定义的,cmd 只需在路径变量的所有部分中搜索,在您的情况下,C:\Document And Settings\USER1 中也有一个 cmd.exe,但这不应该是标准
      猜你喜欢
      • 2019-02-11
      • 1970-01-01
      • 2012-01-31
      • 2011-05-08
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多