setx setting PATH with spaces
setx, windows, windows-shell
Solution
Actually there is an easier way.. it seems to work but it is somewhat ugly and non-intuitive:
setx /M Path "%PATH%;%GRADLE_HOME%\bin
Notice that there is ONLY one double-quote and it is at the beginning .. if you put one at the end, it ends up in the path string (without the one at the beginning).
Problem
I am trying to update the system Path variable in a win32 shell script but only if a value is not present. My current version looks something like this: ``` for %%f in (xyz.exe) DO if [%%~$PATH:f]==[]; setx Path "%PATH%;%GRADLE_HOME%\bin" -m ``` The problem I am having is with ``` setx Path "%PATH%;%GRADLE_HOME%\bin" ``` This doesn't work, but if I change the quotes to single quote ``` setx Path '%PATH%;%GRADLE_HOME%\bin' ``` It does work but the Path ends at the first occurrence of Program Files. I.e abc;def;Program Is there any way to overcome this?