Как создать пустой файл в командной строке DOS/Windows?
Я пробовал:
copy nul > file.txt
но он всегда показывает, что файл был скопирован.
Есть ли какой-либо другой метод в стандартном cmd?
Это должен быть метод, который не требует команды touch из Cygwin или любых других нестандартных команд. Команда должна работать от script, поэтому нажатия клавиш не могут быть использованы.
Без перенаправления 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
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
" передает ответ anul
на команду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!
".
echo.>filename
потому что он будет содержать пробел и символ новой строки.
rem
позволяет избежать создания файла с пустой строкой.
Попробуйте следующее:
type NUL > 1.txt
это определенно создаст пустой файл.
Здесь другой способ:
cd. > filename
cd. > filename
не работает для меня вместо 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
это самый чистый способ, который я знаю.
скопировать con SomeFile.txt Enter
Ctrl-Z Enter
Вы можете написать свой собственный контакт.
//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;
}
Еще один метод, который создает файл с нулевым байтом:
break > "file.txt"
Попробуйте следующее: abc > myFile.txt
Во-первых, он создаст файл с именем myFile.txt
в текущем рабочем каталоге (в командной строке). Затем он выполнит команду abc
, которая не является допустимой. Таким образом, вы получили новый пустой файл с именем myFile.txt
.
abc
находится в пути и является удобной функцией для форматирования всех дисков, кроме установочного каталога.
type nul>filename
создаст новый пустой файл.
UPDATE: Также copy nul filename
работает без перенаправления (более очевидное решение).
Вы также можете использовать:
echo. 2>foo
Отладочный вывод для echo.
почти определенно будет пустым.
Использовать copy > your_file_name.extension
в командной строке
как
P:\excecise> copy > Sample.txt
Я прочитал много потоков, но это не самый короткий путь.
Используйте команду:
>copy /b NUL empty_file.txt
Просто я пробовал в windows
copy con file.txt
затем нажмите клавишу Enter, затем нажмите Ctrl+Z Enter
И это сработало для меня.
Для Ubuntu обычно я создаю файл с помощью команды VI
vi file.txt
Он откроет файл, затем нажмите клавишу ESC, затем введите : wp, затем нажмите клавишу Enter. Он создаст новый файл с пустыми данными.
Еще один способ:
copy nul 2>empty_file.txt
Это сработало для меня,
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.
Сегодня я обнаружил новый:)
Это изменит заголовок окна командной строки, но также создаст пустой файл.
title > file.txt
В Windows Я пробовал делать это
echo off > fff1.txt
и он создал файл с именем fff1.txt с размером файла 0kb
Я не нашел никаких других команд, которые могли бы создать пустой файл.
Примечание. Вы должны находиться в каталоге, который вы хотите создать.
Как пользователь VIM в окнах, я не смог найти ответ в этом вопросе.
Как решение этой темы, сначала установите gvim.
Во время установки, пожалуйста, не забудьте проверить параметр "Создать файлы .bat для использования в командной строке", как показано ниже.
Некоторые файлы bat, такие как vim.bat и gvim.bat, будут установлены под C:\Windows. Добавьте C:\Windows в систему Путь, если это не сделано.
Перезапустите cmd.exe и введите gvim empty_file.txt
, вы запустите gvim для редактирования пустого файла с нуля. Если вы не хотите покидать консоль "Командная строка", введите vim empty_file.txt
.
Надеюсь, что этот ответ поможет тем, кто хочет запустить VIM из окна командной строки при создании пустого файла.
Запустите CMD в режиме администратора и введите следующее:
NUL > file_name.extention
или введите этот
echo .> file_name.extention
Вот еще один способ:
rem/ > file.ext
Слэш /
является обязательным; без него часть перенаправления была прокомментирована rem
.
echo.|set /p=>file
echo.
подавляет "активированную команду ECHO"
|set /p=
предотвратить новую строку (и теперь файл 0 байт)
Сначала создайте файл так, чтобы он существовал:
echo . > myfile.txt
Затем перезапишите созданный файл пустой версией, используя команду copy
:
copy /y nul myfile.txt