【问题标题】:I want to open new cmd prompt and insert arguments from a cmd prompt我想打开新的 cmd 提示符并从 cmd 提示符插入参数
【发布时间】:2015-05-04 04:53:12
【问题描述】:

我尝试启动 cmd 以打开新的 cmd 提示符,但我无法在新 cmd 中提供命令行参数..

我尝试了以下

system("start cmd") >> "system("C:\\Windows\\System32\\ipconfig");

不工作

system(start system("C:\\Windows\\System32\\ipconfig")); 

不工作

【问题讨论】:

  • 您想在哪个平台/语言中执行此操作?
  • C语言..其实想在minifilter驱动中实现...

标签: c windows cmd


【解决方案1】:

正如 Dipak D Desai 所说,您可以简单地使用

system("cmd /c start C:\\Windows\\System32\\ipconfig");

但是,如果您在非控制台应用程序中这样做,将会发生以下情况:

  • Windows 将创建一个新的 cmd 窗口
  • 它将在该窗口中执行ipconfig
  • 程序ipconfig 结束后,它会立即关闭窗口。

如果您希望窗口在命令结束后保持打开状态,可以使用:

system("cmd /c start cmd /k C:\\Windows\\System32\\ipconfig");

第一个cmd /c 允许传递命令start,这是一个内部命令。第二个cmd /c(或cmd /k)启动一个新的shell(cmd.exe),但要求它在执行第一个命令后不要关闭,而是打开一个命令循环。

事实上,第一个cmd /c 不是必需的,因为system 调用暗示了它。因此,即使它是无害的,也应该从命令中省略它(感谢@eryksun 的注意)

【讨论】:

    【解决方案2】:

    启动单独的CMD窗口,需要调用cmd.exe:

    system("cmd.exe /c C:\\Windows\\System32\\ipconfig");
    

    【讨论】:

    • 我试过:system("start cmd /c C:\\Windows\\System32\\ipconfig");但我的屏幕没有保持关闭
    • 谢谢你,我知道了。
    • 好..如果您使用上述接受答案获得解决方案。它会帮助一些有同样问题的人..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    相关资源
    最近更新 更多