Как создать пустой текстовый файл из пакетного файла?

StackOverflow https://stackoverflow.com/questions/210201

  •  03-07-2019
  •  | 
  •  

Вопрос

Может ли кто-нибудь вспомнить, какая была команда для создания пустого файла в MSDOS с использованием BAT-файла?

Это было полезно?

Решение

echo. 2>EmptyFile.txt

Другие советы

copy NUL EmptyFile.txt

В DOS есть несколько специальных файлов (фактически устройств), которые существуют в каждом каталоге. NUL являющийся эквивалентом UNIX /dev/null:это волшебный файл, который всегда пуст и выбрасывает все, что вы в него записываете.Вот список некоторых других; CON тоже иногда бывает полезно.

Чтобы вообще не иметь вывода, вы можете использовать

copy /y NUL EmptyFile.txt >NUL

/y предотвращает copy задавая вопрос, который вы не видите, когда вывод поступает в NUL.

type NUL > EmptyFile.txt

Прочитав два предыдущих поста, я пришел к такому сочетанию этих двух.Кажется, немного чище.Нет необходимости беспокоиться о перенаправлении «1 файл (ы), скопированные». Сообщение в NUL, как и в предыдущем посте, и выглядит красиво рядом с ECHO OutputLineFromLoop >> Emptyfile.txt это обычно происходит в пакетном файле.

Методы, которые я собрал из других ответов:

Создает файл размером 0 байт очень ясный, обратно совместимый способ:

type nul >EmptyFile.txt

идея через: анонимный, Дэнни Бакетт, возможно, и другие, меня вдохновляет Работа JdeBP

Файл размером 0 байт по-другому, это выглядит обратно совместимым:

REM. >EmptyFile.txt

идея через: Йоханнес

Файл размером 0 байт, третий способ обратно-совместимый вид:

echo. 2>EmptyFile.txt

идея через: Смурф

Файл размером 0 байт систематическим способом вероятно доступно начиная с Windows 2000:

fsutil file createnew EmptyFile.txt 0

идея через: Эмм

Файл размером 0 байт перезаписывает файлы, доступные только для чтения.

ATTRIB -R filename.ext>NUL
(CD.>filename.ext)2>NUL

идея через: авторское право

Одна новая строка (2 байта: 0x0D 0x0A в шестнадцатеричная запись, альтернативно записанный как \r\n):

echo.>AlmostEmptyFile.txt

Примечание: нет пространство между echo, . и >.

идея через: Как вы можете повторить новую строку в пакетных файлах?


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

TheInvisibleFeature <nul >EmptyFile.txt

Файл размером 0 байт:неверная команда/со случайным именем (совместимость:неизвестно):

%RANDOM%-%TIME:~6,5% <nul >EmptyFile.txt

с помощью:большой источник наугад от Хунг Хюйня

редактировать 2 Андрей М указывает на то вероятно, самый забавный/провоцирующий способ добиться этого с помощью недопустимой команды

Файл размером 0 байт:неверная команда/прикольный способ (совместимость:неизвестный)

*>EmptyFile.txt

идея через: Андрей М

Файл размером 0 байт, четвертый путь:

break > file.txt

идея через: Фоксидрайв благодаря комментарий из Двойная Гра!

рем.> пустой.файл

Если существует вероятность того, что записываемый файл уже существует и доступен только для чтения, используйте следующий код:

ATTRIB -R filename.ext
CD .>filename.ext

Если файла не существует, просто выполните:

CD .>filename.ext

(обновлен/изменен код согласно комментарию DodgyCodeException)

Чтобы подавить любые ошибки, которые могут возникнуть:

ATTRIB -R filename.ext>NUL
(CD .>filename.ext)2>NUL
fsutil file createnew file.cmd 0

К книгам можно добавить еще одну — короткую и приятную для печати.

break>file.txt
break>"file with spaces in name.txt"

Вы можете использовать TYPE команда вместо COPY.Попробуй это:

TYPE File1.txt>File2.txt

Где File1.txt пусто.

Вы также можете использовать SET чтобы создать ноль byte файл следующим образом

set x=x > EmptyFile.txt

Или, если вы не хотите создавать дополнительную переменную, переназначьте существующую переменную, например

set PROMPT=%PROMPT% > EmptyFile.txt

или вот так:

set "PROMPT=%PROMPT%" > EmptyFile.txt

Самый простой способ:

echo. > Filename.txt

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top