如何在DOS/Windows命令行创建一个空文件?

我试着:

copy nul > file.txt

但是它总是显示文件被复制了。

在标准cmd中是否有其他方法?

它应该是一个不需要来自Cygwin或任何其他非标准命令的触摸命令的方法。 该命令需要从脚本运行,因此不能使用击键。


当前回答

试试这个:abc > myFile.txt 首先,它将在当前工作目录(在命令提示符中)创建一个名为myFile.txt的文件。然后它将运行命令abc,这是一个无效的命令。通过这种方式,您获得了一个名为myFile.txt的新空文件。

其他回答

这对我很有效,

echo > file.extension

这是我今天发现的另一种方法。我从其他答案中得到了一些想法,但它奏效了:

sometext > filename.extension

例如,

xyz > emptyfile.txt  //this would create an empty zero byte text file
abc > filename.mp4   //this would create an zero byte MP4 video media file

这将在命令提示符中显示一个错误消息,

Xyz不是内部或外部命令、可操作程序或批处理文件。

但奇怪的是,我发现文件是在目录中创建的,即使该命令不是标准的Windows命令。

call>file.txt

这是我知道的最干净的方法。

echo "" > filename

我相信这适用于Windows/DOS,但我最后一次使用这两种操作都是很久以前的事了。我确实知道一个事实,它基本上适用于任何POSIX兼容的操作系统。

还有其他简单的方法来创建文件。

例如,您可以创建文件并从cmd中使用记事本打开它

notepad newFile.txt

这将提示您没有这样的文件,如果您想将其创建为一个新文件。

您可以像这样创建任何类型的文件。

例如,

notepad newFile.js

OR

notepad newFile.py

不仅是记事本,你还可以使用其他应用程序来这样做。例如,您可以使用Visual Studio代码来创建和打开新文件。

例如,

code newFile.py

这将创建一个新的Python文件,并在vs code中打开它(如果你安装了vs code)。

您还可以使用此方法创建其他类型的文件。

如果你真的想要一个完全空的文件,没有任何输出到stdout,你可以欺骗一点:

copy nul file.txt > nul

只需将stdout重定向为nul, copy的输出就会消失。