【问题标题】:in golang,how can keep console window open when the program is done which startup the exe by double click在golang中,如何在程序完成后保持控制台窗口打开,通过双击启动exe
【发布时间】:2016-05-06 12:21:30
【问题描述】:

在 windows 启动时双击 .exe 当程序由 os.Exit(...) 完成时 那么,有没有办法让控制台窗口保持打开状态,就像自动运行 cmd 命令一样。 我不想要一些 PAUSE 或其他东西的解决方案让它等待关闭。我需要完成退出程序,并保留控制台窗口。

顺便说一句,我想以某种方式打开另一个控制台窗口,但此代码失败

c :=exec.Command("start")

	if err := c.Run(); err != nil {
		fmt.Println("Error: ", err)
	}
	os.Exit(0)

【问题讨论】:

  • 您可以先启动一个控制台窗口 (cmd),然后在其中运行您的 .exe。

标签: windows go


【解决方案1】:

您可以致电fmt.Scanf()。我知道这是 hack,你不想在生产应用程序中这样做,但它可以工作。

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
    fmt.Scanf("h")
}

【讨论】:

    【解决方案2】:

    如果您需要程序完全退出,但保持窗口打开,请从控制台运行程序。

    1. win+r
    2. 输入cmd
    3. 输入
    4. 导航到存放二进制文件的文件夹,使用cd myFolder 移动到一个文件夹,使用cd .. 向上移动一个文件夹
    5. 键入./myBinary.exe 并按回车键运行二进制文件
    6. 二进制文件运行完毕,控制台保持打开状态。

    编辑:
    为了能够双击,在批处理文件中使用暂停是最简单的解决方案:

    launch.bat

    ./myBinary.exe
    pause
    

    与二进制文件保存在同一文件夹中,双击运行。

    如果你真的愿意,你可以用你选择的语言编写一个与批处理文件做同样事情的程序。

    【讨论】:

    • 为什么?解决问题可能比修复您解决问题的尝试更容易@go-php-2016
    • 项目的需求。我知道你启动程序的正常方式。
    • 并且,我们可以讨论一下,是否有某种方法可以自动构建这个 bat 文件?
    【解决方案3】:

    顺便说一句,我想以某种方式打开另一个控制台窗口,但失败了 代码

    如果您使用 cmd.exe 处理器使用 /k 选项运行 your_executable.exe,它应该运行可执行文件并保留控制台打开。

    cmd.exe /k your_executable.exe
    

    【讨论】:

      猜你喜欢
      • 2013-06-01
      • 2014-04-20
      • 1970-01-01
      • 2010-10-02
      • 2010-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多