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