我已经为我的工作计算机(XP Professional 64位)提供了Powershell V2.0启动脚本,如下所示:
start "C:\Program Files (x86)\Microsoft Office\Office12\OUTLOOK.EXE" -ArgumentList "/recycle"
sleep -S 2
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -ArgumentList "https://mail.google.com"
sleep -S 2
start "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -ArgumentList "-new-window https://www.google.com/calendar"
sleep -S 2
start "C:\Program Files (x86)\Skype\Phone\Skype.exe"
睡眠是为了确保窗口以正确的顺序出现在任务栏上。我使用以下目标在“快速启动”中的快捷方式上运行此代码:
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe C:\scripts\initialize.ps1
(是的,这是2.0:powershell -Version 2.0
可以正常运行-Version 1.0
,但不能-Version 3.0
)
问题是,命令窗口一直保持打开状态,直到Firefox窗口关闭为止,这不是我想要的。在运行脚本时查看Process Explorer,会发生以下情况:
如果我同时关闭了两个Firefox窗口,则会退出powershell.exe进程,并且关闭Powershell窗口,并且按预期方式在explorer.exe下会出现outlook.exe和skype.exe进程。
我怀疑这与Firefox的标准输入,输出和错误有关:我不希望Outlook或Skype能够向控制台输出任何内容,但是Firefox具有允许其执行此操作的命令行选项。我查看了about:config的用户设置值,没有发现任何可疑的东西。最后,如果我已经运行了firefox.exe实例(从桌面快捷方式启动),则不会出现问题(powershell.exe进程将退出,应有的状态)。
那么这是怎么回事?接下来,我将尝试在快捷方式中添加-WindowStyle隐藏(必须关闭该Firefox进行测试),但是,如果只是为了加深我对Windows控制台工作方式的了解,我想深入了解它。
添加-WindowStyle hidden
到目标就像是一种魅力。在任务栏或“进程资源管理器”中找不到分散的Powershell窗口。仍然不确定为什么会首先发生此问题,但至少它能达到预期的效果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句