Как создать пустой файл в командной строке в 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