从脚本中退出Windows终端交互模式

时间:2013-11-21 13:55:15

标签: python batch-file command-line-arguments command-prompt

设置是这样的:

  • init.bat会做一些事情然后调用python app.py -i

  • app.py是该程序的核心,根据用户输入,它最终可能会在终端上运行所有类型的程序。

  • 大多数命令都是以用户继续输入命令的方式结束,但还有其他命令我想在完成任务后关闭终端。


示例:

用户输入命令:>>> dostuff,用于在完成后关闭终端。

app.py处理它:

def dostuff():
    #here's the issue.
    #i want it to run a program and close the terminal
    #but since it's on interactive mode, it will stay open after processing the command.
    print('doing some stuff')
    os.system('.\stuff.bat')
    # exits... 

stuff.bat:

@echo i'm gonna do some stuff and close the terminal
rem ...stuff
rem ...stuff
:: exits...

此时,终端应该关闭,但交互模式可以防止这种情况发生。


我希望我的解释清楚。我需要的是一种强制程序在某些命令后运行并退出的方法,或者在不退出当前正在执行的程序的情况下开启/关闭toogle交互模式的方法,但我不确定将终端设置为交互模式后如何实现。

1 个答案:

答案 0 :(得分:0)

我假设你可以控制python返回的退出代码。

如果要继续,只需让python返回0,如果要退出,则返回1。然后在INIT.BAT中修改对python的调用,如下所示:

python app.py -i || exit