Launch non-blocking process from powershell

I’m writing a powershell script that needs to push code to several git repositories simultaneously?

Here’s the script I have thus far:

param(
    [parameter(Mandatory=$true)]
    [string]$repoPath,
    [parameter(Mandatory=$true)]
    [array]$remoteRepos
)

pushd $repoPath
$remoteRepos | % { 
    #Want to exexcute this without blocking
    & git push $_ master --fore -v 
}
popd

Here’s how I execute the script:

gitdeploy.ps1 -repoPath c:\code\myrepo -remoteRepos repo1,repo2

How to I execute the & git push $_ master --fore -v in a way that is non-blocking?

SOLUTION

Thanks to @Jamey for the solution. I wound executing this command:

Start-Process "cmd.exe" "/c git push $_ master --force -v"

  • os x server and remote git repos
  • How to exit a git status list in terminal?
  • Correctly merging a feature into master
  • How to handle git gc fatal: bad object refs/remotes/origin/HEAD error: failed to run repack
  • Dynamic version from git with go get
  • GIT: (Kohana) Project setup
  • 2 Solutions collect form web for “Launch non-blocking process from powershell”

    You can also use start-process to run each push in an additional command window.

    start-process -FilePath "git" -ArgumentList ("push", $_,  "master", "--fore", "-v") 
    

    Micah, you can use start-job to run it in background – http://technet.microsoft.com/en-us/library/dd347692.aspx

    Git Baby is a git and github fan, let's start git clone.