如何在Windows 7上的PowerShell中运行后台进程?这里的答案是:Powershell equivalent of bash ampersand (&) for forking/running background processes引用似乎不再存在的* -psjob命令。
我通过谷歌发现另一个参考文献,psjob缺失,但没有解决方案。
编辑:显然该解决方案涉及一个名为start-job的命令。
不幸的是,不清楚如何运行带参数的程序。我正在尝试运行“rails server”。当我在提示符下键入rails server
时,rails运行得很好,但它会阻止我的shell。我尝试了各种使用server参数调用rails的方法,例如:
start-job -scriptblock {rails server}
start-job -scriptblock {"rails server"}
start-job -scriptblock {rails "server"}
start-job -scriptblock {rails} -argumentlist server
start-job -scriptblock {rails} -argumentlist "server"
start-job -scriptblock {rails $args[0]} -argumentlist server
start-job -scriptblock {rails $args[1]} -argumentlist server
start-job -scriptblock {rails $args[0]} -argumentlist @("server")
一切都无济于事
答案 0 :(得分:2)
试试这个
Start-Job -scriptblock { param($p) rails $p } -ArgumentList "server"
答案 1 :(得分:2)
随机猜测:尝试完全限定rails.exe的路径。
答案 2 :(得分:1)
您是否尝试过使用New-PSSession cmdlet?这允许您使用PowerShell远程处理在新的后台会话下运行命令,即使在本地计算机上也是如此。
$ Session = New-PSSession localhost
Invoke-Command -Session $ Session -ScriptBlock {Rails Server}
欲了解更多信息:
帮助about_remote *
答案 3 :(得分:1)
它不是很优雅,但您可以随时制作批处理文件并调用它。我这样做是为了从PowerShell调用curl。
答案 4 :(得分:0)
查看powershell - passing parameters to exe
中的功能函数Call
会让您感兴趣。