267

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

4

13 回答 13

385
复制 NUL EmptyFile.txt

DOS 在每个目录中都有一些特殊文件(实际上是设备),NUL相当于 UNIX 的/dev/null: 它是一个始终为空的神奇文件,并且会丢弃您写入的任何内容。这是其他一些列表;CON偶尔也有用。

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

复制 /y NUL EmptyFile.txt >NUL

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

于 2008-10-17T04:07:34.580 回答
246
echo. 2>EmptyFile.txt
于 2008-10-16T20:39:25.780 回答
196
type NUL > EmptyFile.txt

在阅读了前两篇文章后,我想到了这两者的融合。好像干净了一点。无需担心重定向“复制的 1 个文件”。message to NUL,就像上一篇文章一样,它旁边看起来不错ECHO OutputLineFromLoop >> Emptyfile.txt,通常会出现在批处理文件中。

于 2008-11-17T10:03:06.953 回答
73

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

使 0 字节文件成为一种非常清晰、向后兼容的方式:

type nul >EmptyFile.txt

想法来自:匿名Danny Backett,可能还有其他人,我自己受到JdeBP 工作的启发

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

REM. >EmptyFile.txt

想法来自:约翰内斯

一个 0 字节文件,也是向后兼容的第 3 路:

echo. 2>EmptyFile.txt

想法来自:TheSmurf

自 Windows 2000 以来可能可用的系统方式为 0 字节文件:

fsutil file createnew EmptyFile.txt 0

想法来自:Emm

一个 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 字节的文件:无效的命令/具有随机名称(兼容性:uknown):

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

来自:Hung Huynh 的随机来源

编辑 2 Andriy M指出了通过无效命令实现这一目标的可能最有趣/最发人深省的方法

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

*>EmptyFile.txt

想法来自:Andriy M

一个 0 字节的文件 4th-coming 方式

break > file.txt

想法来自:foxidrive感谢Double Gras评论

于 2014-04-18T16:37:50.070 回答
26

快速移动。> 空文件

于 2010-04-12T09:13:41.903 回答
9

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

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

如果不存在文件,只需执行以下操作:

CD .>filename.ext

(根据 DodgyCodeException 的评论更新/更改代码)

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

ATTRIB -R filename.ext>NUL
(CD .>filename.ext)2>NUL
于 2012-02-26T23:30:04.280 回答
7
fsutil file createnew file.cmd 0
于 2011-03-31T22:38:20.097 回答
7

还有一个要添加到书中 - 简短而甜美的打字。

break>file.txt
break>"file with spaces in name.txt"
于 2014-07-18T10:32:16.247 回答
2

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

TYPE File1.txt>File2.txt

哪里File1.txt是空的。

于 2009-08-25T19:39:40.597 回答
1

您也可以使用如下SET方式创建一个空文件byte

set x=x > EmptyFile.txt

或者,如果您不想创建额外的变量,请重新分配现有变量,例如

set PROMPT=%PROMPT% > EmptyFile.txt

或像这样:

set "PROMPT=%PROMPT%" > EmptyFile.txt
于 2014-08-07T11:54:38.920 回答
0

有无限的方法。

什么都不输出的命令:

break
cls
color
goto
pushd
popd
prompt
title

奇怪的命令:

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

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

print /d:EMPTY_TEXT_FILE nul
于 2020-03-08T00:50:15.083 回答
-3

最简单的方法是:

echo. > Filename.txt

于 2014-03-10T22:16:13.143 回答
-4

重要的:

如果不设置编码,很多软件都会崩溃。git 是一个非常流行的例子。

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

于 2020-01-25T06:27:27.737 回答