escape double quotes in git config from cmd

cmd, git

Solution

The answer to "Git on Windows: How do you set up a mergetool?" proposes:

- From a git bash session:

git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'

- or, from a windows `cmd.exe` shell, using 3 double-quotes `"""` to escape one `"`:

git config --global mergetool.p4merge.cmd "p4merge.exe """$BASE""" """$LOCAL""" """$REMOTE""" """$MERGED""""

So it depends if you launched `git-bash.bat` or git-cmd.bat

Other examples in CMD:

git config --global core.editor """"C:\Users\vonc\AppData\Local\Programs\Microsoft VS Code\Code.exe""" --wait"
# or
git config --global core.editor """"C:/Program Files/Notepad++/notepad++.exe""""

Problem

I want to create a batch file that initializes all the key/values in my `.gitconfig` file. I have troubles trying to set the following section from cmd: ``` [mergetool "p4merge"] cmd = p4merge "$BASE" "$LOCAL" "$REMOTE" "$MERGED" ``` I tried: ``` git config --global mergetool.p4merge.cmd "p4merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"" ``` But the result is: ``` [mergetool "p4merge"] cmd = p4merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\" ``` How should I escape that double quotes from cmd?

Original source

Related problems