I had the same poblem on Windows 8.1 and could solve it the following way:
- Use " instead of ' to wrap the JSON document to be inserted
- Mask the " within the document with "
So, your example should then look like this:
curl -XPUT localhost:9200/customer/external/1 -d "{ "name": "John Doe"}"
Good luck!