如何从批处理文件创建空文本文件?

有人记得在MSDOS中使用BAT文件创建空文件的命令是什么吗?

604068 次浏览
echo. 2>EmptyFile.txt
copy NUL EmptyFile.txt

DOS has a few special files (devices, actually) that exist in every directory, NUL being the equivalent of UNIX's /dev/null: it's a magic file that's always empty and throws away anything you write to it. Here's a list of some others; CON is occasionally useful as well.

To avoid having any output at all, you can use

copy /y NUL EmptyFile.txt >NUL

/y防止copy问一个当输出到NUL时你看不到的问题。

type NUL > EmptyFile.txt

在阅读了前两篇文章后,我想到了这两篇文章的结合。看起来干净一点。不需要担心将“1 file(s) copied.”消息重定向到NUL,就像前一篇文章所做的那样,而且它在批处理文件中通常跟随的ECHO OutputLineFromLoop >> Emptyfile.txt旁边看起来很漂亮。

你可以使用TYPE命令来代替COPY。试试这个:

TYPE File1.txt>File2.txt

其中File1.txt为空。

REM. > empty.file

fsutil file createnew file.cmd 0

如果有可能要写入的文件已经存在并且是只读的,请使用以下代码:

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

如果不存在文件,只需执行:

CD .>filename.ext

(根据DodgyCodeException的注释更新/更改代码)

抑制可能出现的任何错误:

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

最简单的方法是:

echo. > Filename.txt

我从其他人的回答中总结了一些技巧:

生成一个0字节的文件一个非常清晰,向后兼容的方式:

type nul >EmptyFile.txt

想法通过:匿名丹尼Backett,可能是其他人,我自己受到JdeBP的工作的启发

另一种方式是0字节文件,它是向后兼容的:

REM. >EmptyFile.txt

idea via: 约翰内斯

0字节文件第三种方式也是向后兼容的:

echo. 2>EmptyFile.txt

idea via: TheSmurf

一个0字节文件的系统方式 可能自Windows 2000起可用:

fsutil file createnew EmptyFile.txt 0

idea via: 电解加工

一个0字节的文件覆盖只读文件

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

idea via: copyitright

一个换行符(2字节:十六进制记数法中的0x0D 0x0A,也可以写成\r\n):

echo.>AlmostEmptyFile.txt

注:echo.>之间有没有空格。

idea via: 如何在批处理文件中回显换行符?


编辑似乎任何无效命令重定向到一个文件将创建一个空文件。嘿,特写! 兼容性:uknown < / p >
TheInvisibleFeature <nul >EmptyFile.txt

0字节文件:无效命令/随机名称(兼容性:uknown):

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

via:伟大的随机由Hung Huynh

编辑2 Andriy M 指出的那样可能是最有趣/挑衅的方式来实现这个通过无效命令

一个0字节的文件:无效的命令/奇怪的方式(兼容性:未知)

*>EmptyFile.txt

idea via: 安德烈米

一个0字节文件的第四种方式:

break > file.txt

idea via: foxidrive thanks to 双肝评论 !

在书中又增加了一个——简短而甜蜜的字体。

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

你也可以使用SET来创建一个空的byte文件,如下所示

set x=x > EmptyFile.txt

或者如果你不想创建一个额外的变量,重新分配一个现有的变量,比如

set PROMPT=%PROMPT% > EmptyFile.txt

或者像这样:

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

重要的是:

如果您不设置编码,许多软件可能会崩溃。Git就是一个非常流行的例子。

Set-Content "your_ignore_file.txt" .gitignore -Encoding utf8 这是区分大小写的和强制utf8编码!

有无限种方法。

无输出的命令:

break
cls
color
goto
pushd
popd
prompt
title

奇怪的命令:

CD.
REM.
@echo off
cmd /c
START >FILE

过时的print命令生成一个空文件:

print /d:EMPTY_TEXT_FILE nul