我正在Windows Vista Powershell中使用Python Django。运行后python manage.py runserver
,它要求我CTRL-BREAK
停止该过程。但是,在键入之后,Powershell将停止该过程并关闭。有没有办法停止该过程并保持Powershell打开?
我正在Windows Vista Powershell中使用Python Django。运行后python manage.py runserver
,它要求我CTRL-BREAK
停止该过程。但是,在键入之后,Powershell将停止该过程并关闭。有没有办法停止该过程并保持Powershell打开?
Answers:
不幸的是,PowerShell控制台主机Ctrl+C
用来终止正在进行的操作并Ctrl+Break
终止该操作并关闭主机会话。恕我直言,这是最不幸的选择,但它在那里,我们可以忍受。
当遇到类似这样的情况时,我发现最简单的操作是从PowerShell会话中执行cmd
,只需从PowerShell提示符下执行即可。现在,我实际上是暂时绕过PowerShell,完成后可以轻松返回到PowerShell会话。
您可能应该考虑的另一件事是使用cmd.exe而不是PowerShell,除非您尝试利用PowerShell的某些功能。
您可以通过以下方式尝试:
您的Powershell在工作中启动python程序
通过powershell主进程陷阱Ctrl-C
当捕获Ctrl-C时,停止在步骤1中启动的作业
然后,您可以继续执行Powershell脚本
要启动后台作业,请使用开始作业
$ killMe =开始工作-scriptblock {&python manage.py}
要捕获Ctrl-C,请告诉您的控制台将Ctrl-C视为输入,请从MSTN进行检查。
[控制台] :: TreatControlCAsInput = $ true
然后运行UI循环以检查按键输入:
while ($true) {
write-host "Processing..."
if ([console]::KeyAvailable) {
$key = [system.console]::readkey($true)
if (($key.modifiers -band [consolemodifiers]"control") -and
($key.key -eq "C")) {
:
break
}
}
}
:
要在按下“ Ctrl-C”时停止作业,
停止工作-job $ killMe
但是,如果您需要与在后台运行的python服务器进行交互,生活将变得不那么轻松。您可能希望不断显示服务器的输出。