Эхо, добавляющее в текстовый файл - PullRequest
0 голосов
/ 04 сентября 2018

Таким образом, когда я эхо текста из командного файла в текстовый файл, я могу без особых проблем экранировать специальные символы. Однако, когда я повторяю определенную комбинацию символов, я не могу найти способ обойти тот факт, что она просто отражается на экране, а не в файле.

Вот что работает ...

echo firsttest^=uncpath>>test.txt
echo [secondtest]>>test.txt

Вот что не работает ...

echo thirdtest^=1>>test.txt
echo fourthtest^=2>>test.txt

Я пытался избежать одного и обоих символов со стрелками, но все еще не ходил.

Любой совет? Я уверен, что это связано со стандартным перенаправлением вывода на консоль с использованием «1>» и «2>», но просто не знаю, как обойти это.

Thanx.

1 Ответ

0 голосов
/ 04 сентября 2018

Ваш анализ верен. Есть две основные концепции, чтобы обойти это:

(echo thirdtest=1)>>test.txt
(echo fourthtest=2)>>test.txt

и

>>test.txt echo thirdtest=1
>>test.txt echo fourthtest=2

(Примечание: = не является одним из специальных символов, которые необходимо экранировать)

Где в строке, которую вы поместили, ваше перенаправление не имеет значения, как показывает работа с echo on. (если вам нравится путаться, введите echo hello>file.txt world, а затем type file.txt)

Еще одно замечание: если вы наберете echo несколько строк, это быстрее:

(
  echo first line
  echo second line
  echo third line
)>>test.txt

(причина: требуется только один доступ к диску (чтение / изменение / запись) вместо того, чтобы делать то же самое для каждой отдельной строки) Вы не заметите это всего лишь тремя строками, но подумайте о написании сотен строк (например, в цикл). Экономия времени будет огромной.

...