Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 同时运行多个执行_Powershell - Fatal编程技术网

Powershell 同时运行多个执行

Powershell 同时运行多个执行,powershell,Powershell,我正在尝试编写一个“方便”的脚本。它已经发展到我需要它同时执行多个任务的地步 基本上,我需要它在单独的命令提示符窗口中启动两个开发web服务器。这是可以通过PowerShell脚本实现的吗?如果是,怎么做 我正在使用Windows10附带的任何PowerShell版本 $ep=获取执行策略 if($ep-相等于“远程签名”){ $root=“C:\Users\User\OneDrive\\u code\u projects\” $whichserver=Read Host-提示“输入要处理的项目

我正在尝试编写一个“方便”的脚本。它已经发展到我需要它同时执行多个任务的地步

基本上,我需要它在单独的命令提示符窗口中启动两个开发web服务器。这是可以通过PowerShell脚本实现的吗?如果是,怎么做

我正在使用Windows10附带的任何PowerShell版本

$ep=获取执行策略
if($ep-相等于“远程签名”){
$root=“C:\Users\User\OneDrive\\u code\u projects\”
$whichserver=Read Host-提示“输入要处理的项目的名称”
$test=“y”#读取主机提示“是否要激活python环境?是/否”
$activatestr=($root+“env\Scripts\Activate.ps1”)
$path=($root+“django\u项目\”+$whichserver+“\”)
$runserverstr=($path+“\manage.py”)
如果($测试-等式'y'){
&$activatestr
}
$test=读取主机-提示“是否要运行ATOM IDE?是/否”
如果($测试-等式'y'){
atom$路径
}
#$test=Read Host-Prompt“是否要将cd刻录到项目根目录中?y/n”
如果($测试-等式'y'){
cd$路径
}
$test=读取主机-提示“是否要运行开发服务器?是/否”
#在这里,我想在react应用程序的根目录中打开命令提示符,或者
#然后我想启动django开发服务器。
如果($测试-等式'y'){
cd$path+$whichserver+“\u react\u main”
cmd.exe/C npm启动
光盘
cmd.exe/C python.exe$runserverstr runserver
}
只需使用(或其别名
start
):

另一个选项是启动服务器进程,如下所示:

后者将在后台运行进程,因此其输出不会显示在控制台中,但您可以通过以下方式获取:


您是否刚刚尝试了
Start Process
?它不会等待被调用的进程返回,就像
Start Process-FilePath“npm”-ArgumentList“Start”-WorkingDirectory$pwd
应该提到的是,在OP的特殊情况下,脚本将与
python.exe
一起工作,但可能无法与
节点一起工作,因为参数中没有提供绝对路径,
start
需要一个包定义。我假设它应该工作,因为原始代码没有pATH也一样,而且据说是有效的。但仍然有效。这对于
启动流程
,是正确的,因为它在
$pwd
中启动,但对于
启动作业
。收到后,
启动作业{cmd/C echo%cd%}
将返回另一个路径,而不是
启动流程“cmd”-ArgumentList”/C;“echo%cd%&pause”
如果不是从用户的家中启动,则使用启动进程的响应似乎正是我所需要的。我在目录中使用
启动进程'python'-ArgumentList./manage.py','runserver'
进行了测试。
Start-Process 'python.exe' -ArgumentList $runserverstr, 'runserver'
$job = Start-Job {
    & 'python.exe' $runserverstr 'runserver'
}
Receive-Job -Job $job