在我的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答案只会给我一些我想要的东西: - (
谢谢, 保罗
答案 0 :(得分:1)
我能想到的最简单的事情是,每当你启动Power Shell时设置一个环境变量(它是否有自动执行功能?)让我们称它为“InPowerShell”并给它值“YES”。
然后创建一个这样的.bat文件:
if %InPowerShell%==YES (
cscript /nologo #*
) else (
wscript #*
)
使用此bat文件将所有vbs文件设置为打开。这样,无论何时双击它都会用wscript打开,而powershell里面会用cscript打开。
(注意:我没有测试过这个)