Я бы сказал, делайте это без кавычек и используйте их везде, где вы используете переменную:
set MY_TOOL=C:\Program Files (x86)\Foobar\bin\mytool.exe
"%MY_TOOL%" -someoption someargument somefile
Особенно, если вы позволяете пользователю установить значение где-то, я думаю, что это самый безопасный вариант, так как ониобычно стараются не заключать его в кавычки, а не делать это.
Если есть много мест, где вы используете переменную, вы, конечно, можете переопределить:
set MY_TOOL="%MY_TOOL%"
, что делает вещи более устойчивымидля тебя.При желании вы можете определить, есть ли кавычки или нет, и добавить их, если они отсутствуют, чтобы быть полностью уверенными.
Когда ваша переменная представляет только путь к каталогу, и вы хотите добавить туда имена файлов, тогда "нет"цитаты "вещь еще важнее, иначе вы бы строили пути вроде
"C:\Program Files (x86)\Foobar\bin"\mytool.exe
или даже:
""C:\Program Files (x86)\Foobar\bin"\my tool with spaces.exe"
, которые, я сомневаюсь, будут правильно разбираться.