【发布时间】:2016-05-31 10:50:00
【问题描述】:
我正在尝试创建一个可以运行它的批处理脚本或计划任务:
pythonw manage.py runserver >nul
如果我从命令提示符处编写它,它将运行,并返回提示符,但如果我尝试使用批处理文件或计划任务运行它,它将打开一个窗口并将自身锁定在该命令中。 我将关闭的窗口添加一个最终的“退出”,但除非我在任务管理器中终止该进程,否则它将被锁定在第一个命令中。
我该怎么做?如果它在普通 cmd 中工作,为什么在 .bat 或 .cmd 文件中工作方式不同?
【问题讨论】:
-
我不知道 python,但是 pythonw 是一个 GUI 程序,因此无法访问启动它的控制台。因此
>nul毫无意义。但是,您的具体问题是其他问题 - 在批处理中 CMD 等待 GUI 程序退出(交互式 CMD 仅等待控制台程序)。请参阅start /?以获得有关这方面的帮助(它解释了使用和不使用start来启动程序 - 与 Windows NT4 相比,Windows 2000 的新行为)。您可能应该使用python,但是如果您想在不是为它设计的控制台中使用 GUI python,请参阅start /w。 -
带有 >nul 的部分是因为 manage.py 是一个 django 脚本,它不打算以这种方式运行,并且在您使用它创建的网络服务器执行的每个操作中都使用标准输出。这是一种解决方法,可以让 Django 开发服务器在没有控制台的情况下启动,并且没有日志只是为了进行核心测试。
-
我的意思是
start没有/w。
标签: python windows batch-file cmd