有没有办法捕获MSDOS命令提示字符串?

时间:2012-04-11 15:40:40

标签: python windows

在Windows XP中打开cmd.exe时,会出现一个控制台窗口,其命令提示符如下所示:

“C:\ User and Settings \ Staffer \ My Documents> ”其中s> '>'后面的下划线是光标。

这是Windows XP的默认设置。用户可以使用PROMPT = something或使用set PROMPT = something

来更改它

在控制台窗口中,在命令提示符下,输入不带参数的内部命令“prompt”不会返回当前提示字符串的内容。

是否有命令或最好是Python库可以检索命令提示符。如果有一种内置的方法来检索该字符串,我不想编写Python模块。

获取命令提示符字符串的用例是当我使用Python子进程模块运行python程序,然后在子进程运行时返回到同一控制台的命令提示符时,我将光标放在空行上。我可以按Enter键,命令提示符将重新显示;但它看起来好像还没有从子进程返回,这误导了我的用户。

我的应用程序的gui部分的一个解决方案是运行pythonw runapp.py。但是我想知道是否有办法通过使用已经制作的DOS命令,Python库,正确使用subprocess.Popen()和communic()调用子进程来获得干净的命令提示符?

3 个答案:

答案 0 :(得分:1)

不确定它是否有帮助但是如果从命令提示符输入“SET”,您将看到一个环境变量列表,包括当前的PROMPT(但如果它是默认提示,它将不会出现在列表中)。

答案 1 :(得分:1)

从命令行:

c:\>echo %prompt%
$P$G

来自Python:

>>> import os
>>> os.environ["PROMPT"]
'$P$G'

http://docs.python.org/library/os.html#process-parameters

<强> [编辑]

啊,我错过了你的编辑。听起来你想要做的就是在后台运行脚本。我相信你正在寻找带有/ b选项 - http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/start.mspx?mfr=true

的Windows“开始”命令

答案 2 :(得分:0)

我认为你正在寻找这个:

import os
print os.getcwd()