Javascript 在PowerShell脚本中运行.js脚本
我正在使用PowerShell脚本在客户的计算机上安装本地Mongo db。为了实现这一点,我正在使用JavaScript批处理为应用程序创建“用户配置文件”。下面是我用来调用JavaScript的代码:Javascript 在PowerShell脚本中运行.js脚本,javascript,mongodb,powershell,Javascript,Mongodb,Powershell,我正在使用PowerShell脚本在客户的计算机上安装本地Mongo db。为了实现这一点,我正在使用JavaScript批处理为应用程序创建“用户配置文件”。下面是我用来调用JavaScript的代码: Write-Host "Running user setup" if ($OS32bit) { & "$($location)\$($environment)\MongoDB\Server\3.2\bin\mongo.exe" localhost:$port $
Write-Host "Running user setup"
if ($OS32bit)
{
& "$($location)\$($environment)\MongoDB\Server\3.2\bin\mongo.exe" localhost:$port $workingDirectory\InitMobileUser.js
}
else
{
& "$($location)\$($environment)\MongoDB\bin\mongo.exe" localhost:$port $workingDirectory\InitMobileUser.js
}
Write-Host " "
Write-Host "User Setup complete"
# lets sleep to ensure the script has time to complete
Start-Sleep -Seconds 10
我遇到的问题是,这似乎是一个“开火并忘记”类型的呼叫,在大约四分之一的计算机中,10秒的等待时间还不够。我希望PowerShell脚本在继续之前动态地等待Javascript完成,类似于c#wait函数
这能做到吗?
提前感谢您提供的任何帮助或与回答此问题的其他问题的链接 换行符在脚本中的正确位置吗?等一下,我会编辑以使其正确。。。很抱歉,感谢您注意到。好的,您正在运行带有一些参数的
mongo.exe
,其中一个参数是JavaScript脚本,它可能知道如何解析。在脚本中使用&
运算符时,PowerShell会阻塞(即等待命令完成)。如果您启动的命令在运行后异步执行某些操作,PowerShell将无法检测到。我的建议是更新JavaScript代码,直到它真正完成才返回。不确定这是否可行。mongo.exe运行一个名为“mongod”的进程。javascript的最后一行应该会停止该进程。在这种情况下,脚本需要等待mongod.exe
结束后才能退出。