2013-10-11 164 views
4

如何在PowerShell中模拟unix命令nohup的行为?那是nohup my-other-nonblocking-command。我已经注意到Start-Job命令,但是语法对我来说有点不清楚。PowerShell中'nohup'的等效物是什么?

+0

Powershell向后兼容,任何适用于v1的命令都适用于v2和v3。 (也是v2和v3脚本仍然使用扩展名“.ps1”)。你能举出一个让你认为Start-Job或Invoke-Command不起作用的例子,并且如果你知道正确的命令,可以发布一个psudocode例子来说明你认为它可以工作吗? –

+0

PS1中的任何工具都可以在v2和v3中使用。如果你解释你实际需要完成的事情,那么有人可能会提出一个更符合PowerShell习惯用法的解决方案。 – alroc

回答

5
> Start-Job my.exe 

与此输出失败:

Start-Job : Parameter set cannot be resolved using the specified named parameters. 
At line:1 char:1 
+ Start-Job my.exe 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidArgument: (:) [Start-Job], ParameterBindingException 
    + FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.StartJobCommand 

试试这个:

> Start-Job { & C:\Full\Path\To\my.exe } 

它会工作,你会看到这样的输出:

Id  Name   PSJobTypeName State   HasMoreData  Location    Command 
--  ----   ------------- -----   -----------  --------    ------- 
2  Job2   BackgroundJob Running  True   localhost    & .\my.exe 

我希望这是你正在寻找的,因为你的问题有点含糊。

+0

这个原理的作用是它创建一个脚本块,从中执行你的二进制文件。我希望你的问题来自Start-Job意外失败的事实,当你把它交给你想运行的二进制文件时。 – petrsnd

+0

老头,是的,那正是我遇到的问题。你完美地钉住了它。 –

相关问题