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

我试着:

copy nul > file.txt

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

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

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


当前回答

你可以写你自己的触摸。

//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;
}

其他回答

首先创建你的文件,让它存在:

echo . > myfile.txt

然后使用copy命令将创建的文件覆盖为空版本:

copy /y nul myfile.txt

在管理员模式下运行CMD,输入以下内容:

NUL > file_name.extention

或者输入这个

echo .> file_name.extention

在Windows上

我试过这么做

echo off > fff1.txt

它创建了一个名为fff1.txt的文件,文件大小为0 KB。

除了这个命令之外,我没有发现任何可以创建空文件的命令。

注意:你必须在你想要创建文件的目录中。

你还可以用:

echo. 2>foo

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

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

copy nul file.txt > nul

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