Похоже, вы используете cmd.exe . Правила экранирования персонажа в командной строке одновременно и архаичны, и ужасны. Я рекомендую использовать Powershell вместо этого; он использует правила, намного более сходные с правилами bash в других * nix-оболочках (хотя и не идентичные, особенно потому, что он использует `(backtick) в качестве escape-символа вместо обратной косой черты).
Вот команда в Powershell в моей системе:
& 'C:\Program Files\Git\mingw64\bin\curl' -i -X POST -H "Content-Type:application/json" -d '{  "firstName" : "Frodo",  "lastName" : "Baggins" }' http://localhost:8080/people
Символ & является обязательным, поскольку путь к программе - строка в кавычках. Я должен был указать путь , потому что я не имею curl.exe в моем PATH Windows. Тем не менее, я мог бы просто избежать пробела в "Program Files":
C:\Program` Files\Git\mingw64\bin\curl -i -X POST -H "Content-Type:application/json" -d '{  "firstName" : "Frodo",  "lastName" : "Baggins" }' http://localhost:8080/people
Одинарные и двойные кавычки в противном случае работают так, как вы их используете, при этом ' разграничение начала строки» и " появляются как буквальные символы внутри нее.
Обратите внимание , что вы должны указать путь к исполняемому файлу curl или по крайней мере указать curl.exe curl сам по себе является псевдонимом Powershell для командлета Invoke-WebRequest , который может выполнять большую часть функций программы cURL, но имеет совершенно другой синтаксис аргументов.
Кроме того, хотя вы можете вызывать Powershell из cmd с помощью powershell -c <command> , это действительно не поможет, поскольку в любом случае вам придется экранировать строку, используя глупый синтаксис cmd .
Другой вариант - просто использовать подсистему Windows для Linux (WSL), которая позволяет запускать программы для Linux (включая версии bash и curl Ubuntu по умолчанию) непосредственно в Windows, не требуя виртуальной машины или перезагрузки. Полную информацию об этом можно найти по адресу https://msdn.microsoft.com/en-us/commandline/wsl/about, но краткая версия - попробуйте запустить bash (или bash.exe) из любой командной строки или окна Powershell, и он установит подсистему Linux или, по крайней мере, расскажет вам, как.