При установке такой переменной:
> set foo=hello && echo test
тогда значение переменной foo содержит лишний ненужный пробел:
> echo "%foo%"
"hello "
Как я могу предотвратить это дополнительное пространство? Исчезает, когда я опускаю && echo test
часть, но мне нужно использовать &&
по другим причинам.
cmd.exe
set "foo=hello&&" in that case. Quoting helps sometimes, you know :-). Of course, when using the variable you still need to be careful to not let the
& amp; `через без кавычек. Если вы знаете, сколько проходов разбора выполняется над вашими переменными, вы также можете напрямую вставить escape-символы.Вы можете сделать это
установить "foo = hello" & amp; эхо-тест
источник
set "foo=hello" && echo !foo!
и он вернетсяhello
, Это было полезно. СпасибоКак указано в других ответах, пробелы в конце
или дажеset
команда значимы, так что если вы введете(где
,
␣
представляет собой пространство),%foo%
устанавливается в строку из шести символовh
,e
,l
,l
,o
,У меня была похожая проблема с пространством, когда
echo
добавление строки в выходной файл. Не удивительно (в свете вышесказанного),пишет строку из шести символов
(плюс CR и LF) в файл, в то время как
h
,e
,l
,l
,o
,не включает пространство Но пробелы в конце командной строки остаются проблемой. Если по какой-то причине вы говорите
тогда вы получите пробел в конце вывода. Когда я удалил пробел после имени файла, пространство в конце вывода исчезло.Странно, но это сработало для меня.
источник
Это помогло мне в этой куче
Мне потребовалось некоторое время, чтобы понять, как удалить пробел в конце переменной. Надеюсь, это поможет кому-то
источник