gynetik
gynetik

Reputation: 155

Running cmd /c from PowerShell with spaces in filepath

I am trying to run the following command in PowerShell

PS C:\Users\Administrator> cmd /c "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\vsdevcmd.bat && nuget restore && msbuild mywebapp.sln /p:DeployOnBuild=true /p:PublishedProfile=ServerFolderProfile"

This produces the error

'C:\Program' is not recognized as an internal or external command. 

My paths have spaces and I'm running several commands seperated by && which is messing everything up. I have tried putting quotes all over the place but I can't get it to work.

If i run just the first part of the command

cmd /c "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\vsdevcmd.bat"

it works fine. But I can't get the other commands to work too.

Upvotes: 5

Views: 18055

Answers (1)

gynetik
gynetik

Reputation: 155

According to the docs for cmd.exe:

If /C or /K is specified, then the remainder of the command line is processed as an immediate command in the new shell. Multiple commands separated by the command separator & or && are accepted if surrounded by quotes

So I just had to change my command to:

PS C:\Users\Administrator> cmd /c "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\vsdevcmd.bat" "&&" nuget restore "&&" msbuild mywebapp.sln /p:DeployOnBuild=true /p:PublishedProfile=ServerFolderProfile

Upvotes: 6

Related Questions