res2001, и что? Весь текст будет удален. Или, по-вашему, нужно не только удалить текст, то есть смысловую информацию, а полностью занулить файл? Интересно, где такая задача может быть нужна, в какой ситуации. Про удаление секретов и очистку логов интуитивно понятно, а где нужно зануление txt файла, с ходу сложно придумать. На всякий случай добавил вашу поправку к ответу, чтобы он был более полным. Спасибо.
Андрей, тогда мой ответ не является решением. Лучше отметить ответ сергей кузьмин таковым. Он реально зануляет файл. А вам на будущее желаю точнее формулировать вопрос.
echo с точкой лучше не использовать (возможны конфликты с именами файлов, начинающимися с echo.…). Впрочем, и предлагаемое по ссылке двоеточие, как я позднее обнаружил, иногда приводило к трудновоспроизводимым глюкам. Точнее сказать не могу, но, как помнится, они иногда возникали при использовании echo: внутри цикла и не воспроизводились после перезагрузки (или, даже, запуска нового процесса CMD.EXE)… В настоящее время наиболее безопасным для вывода (потенциально) пустой строки мне представляется использование открывающей скобки (также встречал на ss64.com):
echo(>file.txt
echo(%VAR%>file.txt
Создать пустой файл с помощью перенаправления вывода можно: set /p=<nul >file.txt
(rem
)>file.txt
rem:>file.txt rem+>file.txt rem[>file.txt rem]>file.txt
…
(Возможно, но нежелательно по тем же причинам, что и echo.: rem.>file.txt rem/>file.txt rem\>file.txt)