Как преобразовать число от 0 до 9 в командный файл Windows в файл без конечного пробела?

Если я сделаю следующее в пакетном файле с именем test:

echo number=0 > file

и запустите его:

> test
> echo number=0  1> file

file содержит:

number=0␣

Если я изменю test на:

echo number=1> file

и запустите его:

 > test
 > echo number= 1>file

file содержит:

number=

1 очевидно интерпретируется как stdout дескриптор, что понятно.

Если я изменю test на:

echo number=0> file

- и от 2 до 9 соответственно - и запустите его:

 > test
 > echo number= 0>file
 number=

0 и от 2 до 9, по-видимому, интерпретируются как не stdout дескрипторы, а file пуст, что тоже понятно.

С участием:

echo "number=1"> file

file содержит:

"number=1"

С участием:

echo (number=1)> file

file содержит:

(number=1)

person Gerold Broser    schedule 09.06.2016    source источник


Ответы (1)


При написании вопроса я нашел ответ на странице Как избежать записи конечных пробелов в текстовый файл при перенаправлении выходных данных ECHO в файл? :

Поместите перенаправление перед командой, например:

> file echo number=0

или, как прокомментировал Стефан, группируйте всю команду, а не только аргумент:

(echo number=0) > file

(В заголовке Использование скобок / скобок для группировки выражений отсутствует немного, ИМХО. Это же группировать команды и выражения, не так ли?)

person Gerold Broser    schedule 09.06.2016
comment
другая возможность: (echo number=0)>file - person Stephan; 09.06.2016