批处理脚本是否有任何方法可以知道是否从PowerShell调用它(没有额外的参数)?
需要类似......
if (%THIS_BATCH_CALLED_FROM_POWERSHELL%)
... warn the user or drop back to powershell to execute the proper instructions...
答案 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。