Без перенаправлении Люк Vu или Эрик Константопулос указывают вне к:
copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt
« Как создать пустой текстовый файл из пакетного файла? » (2008) также указывает на:
type NUL > EmptyFile.txt
# also
echo. 2>EmptyFile.txt
copy nul file.txt > nul # also in qid's answer below
REM. > empty.file
fsutil file createnew file.cmd 0 # to create a file on a mapped drive
Кочевник упоминает оригинальный :
C:\Users\VonC\prog\tests>aaaa > empty_file
'aaaa' is not recognized as an internal or external command, operable program or batch file.
C:\Users\VonC\prog\tests>dir
Folder C:\Users\VonC\prog\tests
27/11/2013 10:40 <REP> .
27/11/2013 10:40 <REP> ..
27/11/2013 10:40 0 empty_file
В том же духе Самуил предлагает в комментариях :
самый короткий, который я использую, в основном, от Nomad:
.>out.txt
Это дает ошибку:
'.' is not recognized as an internal or external command
Но эта ошибка на stderr. И >
только перенаправляет стандартный вывод, где ничего не было произведено.
Отсюда и создание пустого файла. Сообщение об ошибке можно игнорировать здесь.
(Оригинальный ответ, ноябрь 2009 г.)
echo.>filename
( echo ""
фактически поместил бы "" в файл! И echo
без "." вставил бы " Command ECHO activated
" в файл ...)
Примечание: полученный файл не пустой, но содержит последовательность обратной строки: 2 байта.
Это обсуждение указывает на настоящее пакетное решение для реального пустого файла:
<nul (set/p z=) >filename
dir filename
11/09/2009 19:45 0 filename
1 file(s) 0 bytes
« <nul
» Передает nul
ответ на set/p
команду, в результате чего используемая переменная остается неизменной. Как обычно set/p
, строка справа от знака равенства отображается как подсказка без CRLF.
Так как здесь «строка справа от знака равенства» пуста ... результатом является пустой файл.
Разница с cd. > filename
(которая упоминается в ответе Патрика Каффа и также создает файл длиной 0 байт) состоит в том, что этот «бит перенаправления» ( <nul...
трюк) можно использовать для отображения строк без какого-либо CR :
<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt
Команда dir
должна указывать размер файла в 11 байтов: " helloworld!
".