Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

One method to pause code execution in PowerShell until an executable opens is by using a while loop to continuously check whether the process associated with the executable is running. Here is an example:

$exePath = "C:\some\path\to\executable.exe"
$processName = (Get-Item $exePath).BaseName

Start-Process $exePath

while (!(Get-Process $processName -ErrorAction SilentlyContinue)) {
    Start-Sleep -Milliseconds 100
}

# Code execution will continue once the process is detected

This code first starts the executable using the Start-Process cmdlet. Then, it starts a while loop that checks whether the process associated with the executable (identified by its base name) is running using the Get-Process cmdlet. The loop runs continuously until the process is detected, with a short sleep of 100 milliseconds between each loop iteration. Once the process is detected, the loop exits and the code following it will execute.