Как указано в других ответах,
пробелы в конце set
команда значимы,
так что если вы введете
set foo=hello & echo test
или даже
set foo=hello␣
(где ␣
представляет собой пространство), %foo%
устанавливается в строку из шести символов h
, e
, l
, l
, o
,
,
У меня была похожая проблема с пространством, когда echo
добавление строки в выходной файл.
Не удивительно (в свете вышесказанного),
echo hello >myfile
пишет строку из шести символов h
, e
, l
, l
, o
,
(плюс CR и LF)
в файл, в то время как
echo hello> myfile
не включает пространство
Но пробелы в конце командной строки остаются проблемой.
Если по какой-то причине вы говорите
echo hello>myfile␣
тогда вы получите пробел в конце вывода.
Когда я удалил пробел после имени файла,
пространство в конце вывода исчезло.
Странно, но это сработало для меня.