如何在不影响双击行为的情况下使Powershell在控制台中运行VBS文件?

时间:2011-03-25 17:19:31

标签: powershell vbscript

在我的PC上,VBS文件(通过注册表中的文件关联条目)设置为使用WScript运行。这就是我想要的,这样我就可以双击VBS文件而不打开控制台窗口。但是,当我使用Powershell命令行时,我希望使用CScript运行VBS脚本(即使用“cscript / nologo myfile.vbs”)。有没有办法让Powershell做到这一点,而不影响双击行为?

对于单个脚本,我可以为每个脚本编写一个函数(函数foo {cscript / nologo foo.vbs $ args}),但这根本不能扩展。我正在考虑像Take Command的“可执行扩展”功能,它允许您为文件扩展名设置特定操作(设置.vbs = cscript / nologo)。

我对Python脚本也有同样的问题,默认操作再次没有按照我想要的方式执行(由于某种原因,它会打开第二个控制台窗口,而不是在Powershell控制台中显示输出)所以特定于VBS答案只会给我一些我想要的东西: - (

谢谢, 保罗

1 个答案:

答案 0 :(得分:1)

我能想到的最简单的事情是,每当你启动Power Shell时设置一个环境变量(它是否有自动执行功能?)让我们称它为“InPowerShell”并给它值“YES”。

然后创建一个这样的.bat文件:

if %InPowerShell%==YES (
  cscript /nologo #*
) else (
  wscript #*
)

使用此bat文件将所有vbs文件设置为打开。这样,无论何时双击它都会用wscript打开,而powershell里面会用cscript打开。

(注意:我没有测试过这个)