Я бы предложил следующее только в качестве комментария, но я думаю, что это достаточно важно, чтобы стоять самостоятельно.
Во многих предыдущих ответах упоминалось, что нужно остерегаться конечных пробелов;и наверняка это правда.Однако я обнаружил, что иногда конечные пробелы просто хотят попасть туда, несмотря ни на что - особенно если вы делаете однострочную командную строку и вам нужен пробел в качестве разделителя команд.
Это решениеэта проблема:
SET FOO=Bar
echo %FOO%
:: outputs Bar
SET "FOO="
echo %FOO%
:: outputs %FOO%
Заключив объявление в двойные кавычки, можно полностью избежать проблемы с пробелами.Это также может быть полезно, когда переменные создаются путем объединения, чтобы исключить пробелы между, например, путями, например:
SET A=c:\users\ && SET D=Daniel
SET P="%a%%d%"
ECHO %P%
:: outputs "C:\Users\ Daniel"
:: Notice the undesirable space there