Правила экранирования специальных символов при использовании команды MSDOS 'echo' для добавления текста в файл? - PullRequest
3 голосов
/ 28 июля 2011

Я хотел бы иметь возможность добавлять любой текст в файл с помощью командной строки MSDOS. AFAIK, способ сделать это с помощью echo someText >> someFile.txt

Поскольку someText может содержать любой текст, такие символы, как \ & | > <^ </em> необходимо экранировать, используя ^ Escape-символ (например, \ становится ^ \ )

Но оказывается, что этого недостаточно. Я нашел экспериментальным путем несколько особых случаев, и мне интересно, как справиться с некоторыми из них (и есть ли еще такие)

  • эхо D >> someFile.txt , где D - любая цифра. Вместо добавляя D к файлу, он выводит «ECHO on». Это необходимо использовать вместо echo ^ D >> someFile.txt. ПРИМЕЧАНИЕ: когда есть больше символов после цифр все нормально.
  • echo a = 0 >> someFile.txt ничего не добавляет, просто повторяет a =
  • эхо a = 1 >> someFile.txt ввод только a =

Есть идеи?

Ответы [ 2 ]

1 голос
/ 10 июня 2012

Используется цифра для обозначения того, какой выход требуется.Обычно 1> направляет стандартный вывод, 2> направляет стандартную ошибку.Я полагаю, что в основном это зависит от того, как на самом деле запрограммированы потоки. Если программа записывает данные в printer-n, тогда n> будет работать для этого потока, иначе ничего

1 голос
/ 04 октября 2011

Вы пробовали пробел между 'цифрой' и '>>'?

echo D >> someFile.txt
echo a = 1 >> someFIle.txt

это работает. Но я не смог найти объяснения этому

...