如何从batch file创build空的文本文件?

有人可以记住什么是使用BAT文件在MSDOS中创build一个空文件的命令?

 echo. 2>EmptyFile.txt 
 复制NUL EmptyFile.txt 

DOS在每个目录中都有一些特殊的文件(实际上是设备), NUL等同于UNIX的/dev/null :这是一个永远为空的魔法文件,并且抛弃任何你写的东西。 这是其他一些列表 。 CON有时也是有用的。

为了避免有任何输出,你可以使用

 复制/ y NUL EmptyFile.txt> NUL 

/y防止copy提出输出到NUL时看不到的问题。

 type NUL > EmptyFile.txt 

在阅读前两篇文章之后,我就想到了两者的融合。 它似乎有点干净。 没有必要担心redirect“1复制的文件”。 消息传递给NUL ,就像之前的文章一样,在ECHO OutputLineFromLoop >> Emptyfile.txt旁边看起来不错,通常会在batch file中出现。

我从其他答案收集的技术:

使0字节的文件变得非常清晰,向后兼容:

 type nul >EmptyFile.txt 

想法通过: 匿名 , Danny Backett ,也许其他人,由JdeBP的工作启发

另外一个0字节的文件 ,它是向后兼容的:

 REM. >EmptyFile.txt 

想法通过: Johannes

一个0字节的文件也是第三种向后兼容的文件

 echo. 2>EmptyFile.txt 

想法通过: TheSmurf

一个0字节文件从Windows 2000以来大概可用的系统方式

 fsutil file createnew EmptyFile.txt 0 

想法通过: Emm

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

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

想法通过: copyitright

一个换行符 (2个字节: hex表示法中的 0x0D 0x0A ,或者写成\r\n ):

 echo.>AlmostEmptyFile.txt 

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

想法通过: 你怎么能在batch file中回显新行?


编辑似乎任何无效的命令redirect到一个文件将创build一个空文件。 嘿,一个function! 兼容性:不知道

 TheInvisibleFeature <nul >EmptyFile.txt 

一个0字节的文件:无效的命令/带有随机的名字 (兼容性:不知道):

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

通过:洪Huynh随机的伟大来源

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

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

 *>EmptyFile.txt 

想法通过: Andriy M

一个0字节的文件即将到来的方式

 break > file.txt 

想法通过: foxidrive感谢评论 双Gras !

REM。 > empty.file

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

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

如果没有文件存在,只需做:

 CD.>filename.ext 

禁止任何可能出现的错误:

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

再加上一本书 – 短而甜美的types。

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

您可以使用TYPE命令而不是COPY 。 尝试这个:

 TYPE File1.txt>File2.txt 

其中File1.txt是空的。

您也可以使用SET来创build一个空byte文件,如下所示

 set x=x > EmptyFile.txt 

或者如果你不想创build一个额外的variables重新分配一个现有的variables

 set PROMPT=%PROMPT% > EmptyFile.txt 

或者像这样:

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

最简单的方法是:

echo. > Filename.txt