我试过这么简单:
'Start-Process "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -Wait'
Start-Sleep -s 20
Start-Process "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" imacros://run/?m=MyJS.js -Wait'
但是在继续之前它还没有完成脚本。
并尝试使用-PassThru
,-Wait
,-Start
-Sleep
和一个关键组合来启动jscript,如:
'start-process "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -PassThru; Start-Sleep -s 20;[void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic");[Microsoft.VisualBasic.Interaction]::AppActivate("Login - Mozilla Firefox");[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms");[System.Windows.Forms.SendKeys]::SendWait("%5")'
最终,我要做的是启动Firefox,运行一个imacros jscript,等待它完成然后关闭Firefox。
答案 0 :(得分:0)
我不知道为什么你首先启动firefox,然后再用指定的imacro运行它。所以我在我的解决方案中跳过它。我会做这样的事情:
$cmdLine = "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
$args = "imacros://run/?m=MyJS.js"
start-process $cmdLine $args
Start-Sleep -Seconds 30
Get-Process | ? {$_.Name -like "firefox"} | %{$_.Close()}