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

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

пробовал:

copy nul > file.txt

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

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

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

30 ответов


без например, Люк Вю или Ерик Константопулоса точка из в:

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. И > перенаправляет только 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 (который упоминается в ответ Патрика Каффа и также создает файл длиной 0 байт) заключается в том, что этот " бит перенаправление " (the <nul... trick) можно использовать для Эхо-линии без каких-либо CR:

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

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


попробуйте это:

type NUL > 1.txt

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


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

cd. > filename

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

copy nul file.txt > nul

просто перенаправьте stdout на nul, и вывод из копии исчезнет.


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

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

читая комментарии к моему сообщению, я должен признать, что не прочитал вопрос правильно.

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

fsutil file createnew <filename> <size>

пример:

fsutil file createnew myEmptyFile.txt 0

ниже для командной строки *nix.

touch filename

эта команда меняет дату изменения файла или создает его, если файл не найден.


echo "" > filename

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


call>file.txt

Это самый чистый способ я знаю.


вы можете написать свой собственный штрих.

//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;
}

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

Ctrl-Z Enter


cd > filename.cfg 

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


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


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

break > "file.txt"

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

P:\excecise> copy > Sample.txt

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

echo. 2>foo

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


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

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

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


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

copy con file_name.ext

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


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

echo > file.extension

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

sometext > filename.extension

например.

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.


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

copy nul 2>empty_file.txt

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

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

>copy /b NUL empty_file.txt


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

copy con file.txt

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

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

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

vi file.txt

Он откроет файл, затем нажмите ESC


попробуйте это:

echo $null >> filename 

посмотреть: суперпользователя


На Windows Я пытался сделать это

echo off > fff1.txt

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

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

Примечание: Вы должны быть в папке, которую вы хотите создать файл.


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

'' > newfile.txt

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

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


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

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

title > file.txt

запустите CMD в режиме admistrator и введите следующее:

NUL > file_name.extention

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

echo .> file_name.extention

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

rem/ > file.ext

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


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

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


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

echo . > myfile.txt

затем перезапишите созданный файл пустой версией с помощью :

copy /y nul myfile.txt

echo.|set /p=>file

echo. подавить "команда Эхо активирована"

|set /p= предотвратить новую строку (и файл теперь 0 байт)