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



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



пробовал:



copy nul > file.txt


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



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



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

1395   30  

30 ответов:

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

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 байта.


этой обсуждение указывает на истинное пакетное решение для реального пустой file:

 <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... трюк) можно использовать для Эхо линии без каких-либо 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

просто перенаправить стандартный вывод в 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 введите

Ctrl-Zвведите

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

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

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

для 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 в режиме администратора и введите следующее:

NUL > file_name.extention

или вы набираете это

echo .> file_name.extention

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

rem/ > file.ext

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

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

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

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

echo . > myfile.txt

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

copy /y nul myfile.txt
echo.|set /p=>file

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

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

Comments

    Ничего не найдено.