Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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_Powershell Core - Fatal编程技术网

Powershell允许取消启动进程-等待

Powershell允许取消启动进程-等待,powershell,powershell-core,Powershell,Powershell Core,我需要暂停powershell脚本,直到它启动的进程完成。很好,我可以使用启动进程xxxx-等待 但是在一些情况下,我需要能够在不等待的情况下继续脚本,并且在开始这个过程之前我不能做出这个决定 更可取的是,我甚至可以在这里终止已启动的进程,但是否有一种方法可以启动一个进程,然后侦听enter键或“continue”以停止该进程并让powershell脚本继续,否则只需等待进程完成并退出以继续脚本 我在powershell文档中翻了几个小时,很难找到什么命令最能处理我的问题 除此之外,理想情况下,

我需要暂停powershell脚本,直到它启动的进程完成。很好,我可以使用
启动进程xxxx-等待

但是在一些情况下,我需要能够在不等待的情况下继续脚本,并且在开始这个过程之前我不能做出这个决定

更可取的是,我甚至可以在这里终止已启动的进程,但是否有一种方法可以启动一个进程,然后侦听enter键或“continue”以停止该进程并让powershell脚本继续,否则只需等待进程完成并退出以继续脚本

我在powershell文档中翻了几个小时,很难找到什么命令最能处理我的问题


除此之外,理想情况下,这将是powershell 7(core)跨平台兼容。

这并不是每个人都能保证的,但它对我的情况有效

Write-Host "  Waiting on synrchonize..."
$process = Start-Process "java" -NoNewWindow -argumentlist "-jar myjar.jar" -PassThru
Write-Host "  Press any key to skip wait"
while(!([Console]::KeyAvailable -or ($process.HasExited)))
{
    [Threading.Thread]::Sleep( 100 )
}

if(!$process.HasExited){
    Write-Host "...skipped"
    $process.Kill()
} else {
    Write-Host "...waited!"
}

$p=启动进程-Passthru
然后调用
$p。WaitForExit(2000)
循环,并检查书本结果。如果需要终止进程,请调用
$p。Kill()
谢谢,这听起来确实像我在寻找的,但是如果我要接受输入以可能杀死它,它不会阻止循环再次运行吗?使用[Console::KeyAvailable]和循环我可以检查它。但是使用启动进程,直到进程退出,输入才会返回到我的powershell窗口。我不得不使用-nonewindow来保存输入,但它似乎确实有效