批处理脚本可以知道它是否是从PowerShell调用的吗?

时间:2009-09-02 18:10:42

标签: powershell batch-file

批处理脚本是否有任何方法可以知道是否从PowerShell调用它(没有额外的参数)?

需要类似......

if (%THIS_BATCH_CALLED_FROM_POWERSHELL%)
    ... warn the user or drop back to powershell to execute the proper instructions...

this question - virtualenv-in-powershell相关的问题。

3 个答案:

答案 0 :(得分:3)

您可以使用“tlist.exe / t”或this one之类的工具来显示当前进程和所有父进程的PID。您可以检查每个PID,看看是否有任何对应PowerShell.exe。

答案 1 :(得分:0)

您可以在脚本中添加默认警告,并向其传递一个标志,告诉它不要显示警告。当您从电源shell调用它时,将该标志传递给它。

答案 2 :(得分:0)

在我的Powershell环境(PS 2.0 CTP)中,我似乎有一个环境变量PSMODULEPATH,它不是由普通的命令行环境设置的,但是当Powershell有一个子CMD.exe shell时仍然存在。

我认为您可以“可靠地”检查批处理脚本中是否存在PSMODULEPATH。