Символ =
является разделителем, функционально он выглядит так же, как пробел . Как вы можете видеть в примере ниже:
c:\NotBackedUp>echo abc>d efg.txt c:\NotBackedUp>type d abc efg.txt
Аналогично, =
сделаем то же самое:
c:\NotBackedUp>echo abc>d=efg.txt c:\NotBackedUp>type d abc=efg.txt
Давайте посмотрим на вашу первую команду: echo cde > c=d.txt
Начиная с, вы вызываете echo
команду, а затем передаете ей значение cde
для вставки в файл c
. Потому что =
является разделителем, и вы не сказали, echo
куда нужно отправить следующую строку d.txt
, то по умолчанию к предыдущему файлу: c
.
Вы можете обойти это, либо указав свое выходное имя:
c:\NotBackedUp>echo abc>"d=e.txt"
или экранируя разделитель с помощью ^
:
c:\NotBackedUp>echo abc>d^=e.txt
Оба из них создадут файл d=e.txt
с содержимым abc
.