在powershell

时间:2016-03-23 10:09:39

标签: powershell selenium selenium-grid nssm

我正在尝试使用NSSM和powershell安装Selenium作为服务。但是,创建服务时没有设置正确的参数。

在CMD中运行的同一命令成功执行,并按预期安装服务。

如何使用Powershell将设置传递给NSSM?我正在使用的命令是:

nssm install SeleniumHub java -jar C:\bin\Selenium2\selenium-server-standalone-2.53.0.jar -role hub -hubConfig C:\bin\Selenium2\seleniumHubConfig.json

NSSM在我的PATH上,因此powershell正确地找到了NSSM可执行文件,但它似乎没有像CMD那样处理参数

2 个答案:

答案 0 :(得分:2)

如果它在CMD中有效,为什么不将它作为cmd命令传递:)

cmd /c "nssm install SeleniumHub java -jar C:\bin\Selenium2\selenium-server-standalone-2.53.0.jar -role hub -hubConfig C:\bin\Selenium2\seleniumHubConfig.json"

答案 1 :(得分:1)

你是对的 - PowerShell不处理与CMD相同的参数。这里的问题是一些NSSM参数(例如-role-hub)看起来像PowerShell参数,因此PowerShell试图解释它们,而不是将它们传递给NSSM。

将这些参数括在引号中会有所帮助,但我发现使用参数调用命令的最佳方法是将它们捆绑为数组,并使用调用运算符&

$params = @('install', 'SeleniumHub', 'java', '-jar',
            'C:\bin\Selenium2\selenium-server-standalone-2.53.0.jar',
            '-role', 'hub', '-hubConfig',
            'C:\bin\Selenium2\seleniumHubConfig.json')
& nssm $params