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

我试着:

copy nul > file.txt

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

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

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


当前回答

你还可以用:

echo. 2>foo

echo的调试输出。几乎肯定是空的。

其他回答

要创建任何类型的文件,您可以使用以下代码

type nul > (file_name).(file_type)

例如,如果你想创建一个文本文件,那么

type nul > demo.txt

如果你想创建一个JavaScript文件

type nul > demo.js

这对我很有效,

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命令。

你可以写你自己的触摸。

//touch.cpp
#include <fstream>
#include <iostream>

int main(int argc, char ** argv;)
{
  if(argc !=2)
  {
    std::cerr << "Must supply a filename as argument" << endl;
    return 1;
  }
  std::ofstream foo(argv[1]);
  foo.close();
  return 0;
}

输入nul > filename将创建一个新的空文件。

也复制null文件名工作没有重定向(更明显的解决方案)。

试试这个:

echo $null >> filename 

参见:相当于Linux触摸创建一个空文件与PowerShell