检查脚本是否通过Powershell终端运行?

时间:2019-08-15 22:23:17

标签: python powershell user-experience

我正在编写可以由用户或通过脚本运行的通用脚本。我想对其进行设置,以便当用户双击脚本时,他们可以看到输出,但是如果它们在终端中运行,则不会提示输入。因此,在脚本的参数中,我通过以下方式进行设置:

import argparse
import os

parser = argparse.ArgumentParser()

parser.add_argument(
    '--interactive', '-i', action='store_true',
    default='PROMPT' not in os.environ,
    help='put the application in interactive mode'
)
args = parser.parse_args()

# Do Stuff

if args.interactive:
    input('Press enter to continue...')

此默认规则(选中'PROMPT' not in os.environ)非常适合常规命令行和批处理脚本,因为PROMPT会自动设置。但是,它不适用于Powershell。有没有一种方法可以确定脚本是否已在Powershell环境中运行,从而提供类似的解决方案,使无需用户指定任何内容即可进行交互?

我知道用户可以在powershell中以这种方式运行脚本:

$env:PROMPT = "NotTheEmptyString"; py .\test.py

但是,这似乎是一个糟糕的界面,而且我对Powershell不够了解,无法检查环境中的事物。

0 个答案:

没有答案