Как создать пустой файл в командной строке в Windows?

Как создать пустой файл в командной строке DOS/Windows?

Я пробовал:

copy nul > file.txt

но он всегда показывает, что файл был скопирован.

Есть ли какой-либо другой метод в стандартном cmd?

Это должен быть метод, который не требует команды touch из Cygwin или любых других нестандартных команд. Команда должна работать от script, поэтому нажатия клавиш не могут быть использованы.

Ответ 1

Без перенаправления Luc Vu или Эрик Константопулос point :

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 answer below
REM. > empty.file
fsutil file createnew file.cmd 0 # to create a file on a mapped drive

Nomad упоминает оригинал:

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

В том же духе Samuel предлагает в комментариях:

самый короткий, который я использую, в основном тот, что был Nomad:

.>out.txt

Это дает ошибку:

'.' is not recognized as an internal or external command

Но эта ошибка на stderr. И > только перенаправляет stdout, где ничего не было создано.
Следовательно, создается пустой файл. Сообщение об ошибке можно игнорировать здесь.


(Оригинальный ответ, ноябрь 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" передает ответ a nul на команду set/p, что приведет к переменная, используемая для того, чтобы оставаться неизменной. Как обычно, с set/p, строка в справа от знака равенства отображается как приглашение без CRLF.

Так как здесь "строка справа от знака равенства" пуста... результатом является пустой файл.


Разница с cd. > filename (указанная в Patrick Cuff answer и также создающая файл длиной в 0 байт) заключается в том, что этот "бит перенаправления" "(трюк <nul...) можно использовать для эхо-строк без CR:

<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt

Команда dir должна указывать размер файла как 12 байтов: "hello world!".

Ответ 2

Попробуйте следующее:

type NUL > 1.txt

это определенно создаст пустой файл.

Ответ 3

Здесь другой способ:

cd. > filename

Ответ 4

Если вы действительно хотите полностью пустой файл, без вывода на stdout, вы можете немного обмануть:

copy nul file.txt > nul

Просто перенаправляйте stdout на nul, а результат с копии исчезает.

Ответ 5

Открыть файл:

type file.txt

Новый файл:

Way 1 : type nul > file.txt
Way 2 : echo This is a sample text file > sample.txt
Way 3 : notepad myfile.txt <press enter>

Изменить содержимое:

notepad file.txt

Копировать

copy file1.txt file1Copy.txt

Переименовать

rename file1.txt file1_rename.txt

Удалить файл:

del file.txt

Ответ 6

Чтение комментариев на мой пост, я должен признать, что я не правильно прочитал вопрос.

В командной строке Windows одним из способов было бы использовать fsutil:

fsutil file createnew <filename> <size>

Пример:

fsutil file createnew myEmptyFile.txt 0

Ниже приведена строка * nix.

touch filename

Эта команда изменяет вашу измененную дату файла или создает ее, если файл не найден.

Ответ 7

echo "" > filename

Я считаю, что это работает на Windows/DOS, но мой последний практический опыт с ним довольно давно. Я действительно знаю, что он работает практически в любой POSIX совместимой ОС.

Ответ 8

call>file.txt

это самый чистый способ, который я знаю.

Ответ 9

Вы можете написать свой собственный контакт.

//touch.cpp
#include <fstream>
#include <iostream>

int main(int argc, char ** argv;)
{
  if(argc !=2)
  {
    std::cerr << "Must supply a filename as argument" << endl;
    return 1;
  }
  std::ofstream foo(argv[1]);
  foo.close();
  return 0;
}

Ответ 10

cd > filename.cfg 

работал при создании файла в C: /Program Files, где у вас нет доступа для непосредственного создания файлов.

Ответ 11

скопировать con SomeFile.txt Enter

Ctrl-Z Enter

Ответ 12

Попробуйте следующее: abc > myFile.txt Во-первых, он создаст файл с именем myFile.txt в текущем рабочем каталоге (в командной строке). Затем он выполнит команду abc, которая не является допустимой. Таким образом, вы получили новый пустой файл с именем myFile.txt.

Ответ 13

Еще один метод, который создает файл с нулевым байтом:

break > "file.txt"

Ответ 14

Использовать copy > your_file_name.extension в командной строке как

P:\excecise> copy > Sample.txt

Ответ 15

Вы также можете использовать:

echo. 2>foo

Отладочный вывод для echo. почти определенно будет пустым.

Ответ 16

type nul>filename создаст новый пустой файл.

Извините, я опоздал.

UPDATE: Также copy nul filename работает без перенаправления (более очевидное решение).

Ответ 17

Вы можете использовать старую команду

copy con file_name.ext

ничего не вводите, просто нажмите F6, чтобы сохранить его, однако он напечатает "Файл скопирован", но когда вы откроете файл, он будет пуст

Ответ 18

Это сработало для меня,

echo > file.extension

Здесь другой способ, который я нашел сегодня, получил идеи от других ответов, но он работал

sometext > filename.extension

Eg.

xyz > emptyfile.txt  //this would create an empty zero byte text file
abc > filename.mp4   //this would create an zero byte MP4 video media file

В командной строке появится сообщение об ошибке, в котором

xyz не является внутренней или внешней командой, оперативной программой или командным файлом.

Но странная вещь, которую я нашел, это файл создается в каталоге, даже если команда не является стандартной командой Windows.

Ответ 19

Еще один способ:

copy nul 2>empty_file.txt

Ответ 20

В Windows Я пробовал делать это

echo off > fff1.txt

и он создал файл с именем fff1.txt с размером файла 0kb

Я не нашел никаких других команд, которые могли бы создать пустой файл.

Примечание. Вы должны находиться в каталоге, который вы хотите создать.

Ответ 21

Я прочитал много потоков, но это не самый короткий путь.

Используйте команду:

>copy /b NUL empty_file.txt

Ответ 22

Просто я пробовал в windows

copy con file.txt

затем нажмите клавишу Enter, затем нажмите Ctrl+Z Enter

И это сработало для меня.

Для Ubuntu обычно я создаю файл с помощью команды VI

vi file.txt

Он откроет файл, затем нажмите клавишу ESC, затем введите : wp, затем нажмите клавишу Enter. Он создаст новый файл с пустыми данными.

Ответ 23

Попробуйте следующее:

echo $null >> filename 

Смотрите: superUser

Ответ 24

так что вы можете создать пустой файл с

'' > newfile.txt

перейдите в каталог и введите указанную выше команду в окне PowerShell.

Обратите внимание, что это не будет работать в командной строке Windows.

Ответ 25

  • создать bat файл с содержимым echo '' > %1. (назовите файл как touch.bat)
  • добавьте папку в переменную PATH.
  • Вы можете использовать сенсорный для создания файлов. (touch temp.txt: touch temp.txt создает файл temp.txt)

проверьте эту статью для получения дополнительной информации.

Ответ 26

Сегодня я обнаружил новый:)

Это изменит заголовок окна командной строки, но также создаст пустой файл.

title > file.txt

Ответ 27

Вот еще один способ:

rem/ > file.ext

Слэш / является обязательным; без него часть перенаправления была прокомментирована rem.

Ответ 28

Запустите CMD в режиме администратора и введите следующее:

NUL > file_name.extention

или введите этот

echo .> file_name.extention

Ответ 29

Для создания любого типа файла вы можете использовать следующий код

введите nul> (имя_файла). (тип_файла)

Например. Если вы хотите создать текстовый файл, то

введите nul> demo.txt

Если вы хотите создать файл JavaScript, то

введите nul> demo.js

Ответ 30

Сначала создайте файл так, чтобы он существовал:

echo . > myfile.txt

Затем перезапишите созданный файл пустой версией, используя команду copy:

copy /y nul myfile.txt