PowerShell - Start-Process and Cmdline Switches PowerShell - Start-Process and Cmdline Switches powershell powershell

PowerShell - Start-Process and Cmdline Switches


you are going to want to separate your arguments into separate parameter

$msbuild = "C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe"$arguments = "/v:q /nologo"start-process $msbuild $arguments 


Using explicit parameters, it would be:

$msbuild = 'C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe'start-Process -FilePath $msbuild -ArgumentList '/v:q','/nologo'

EDIT: quotes.


Warning

If you run PowerShell from a cmd.exe window created by Powershell, the 2nd instance no longer waits for jobs to complete.

cmd>  PowerShellPS> Start-Process cmd.exe -Wait 

Now from the new cmd window, run PowerShell again and within it start a 2nd cmd window:cmd2> PowerShell

PS> Start-Process cmd.exe -WaitPS>   

The 2nd instance of PowerShell no longer honors the -Wait request and ALL background process/jobs return 'Completed' status even thou they are still running !

I discovered this when my C# Explorer program is used to open a cmd.exe window and PS is run from that window, it also ignores the -Wait request.It appears that any PowerShell which is a 'win32 job' of cmd.exe fails to honor the wait request.

I ran into this with PowerShell version 3.0 on windows 7/x64