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

我试着:

copy nul > file.txt

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

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

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


当前回答

Luc Vu或Erik Konstantopoulos指出:

copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt

“如何从批处理文件创建空文本文件?”(2008)还指出:

type NUL > EmptyFile.txt
# also
echo. 2>EmptyFile.txt
copy nul file.txt > nul # also in qid's answer below
REM. > empty.file
fsutil file createnew file.cmd 0 # to create a file on a mapped drive

Nomad提到一个原创的例子:

C:\Users\VonC\prog\tests>aaaa > empty_file
'aaaa' is not recognized as an internal or external command, operable program or batch file.

C:\Users\VonC\prog\tests>dir

 Folder C:\Users\VonC\prog\tests

27/11/2013  10:40    <REP>          .
27/11/2013  10:40    <REP>          ..
27/11/2013  10:40                 0 empty_file

本着同样的精神,塞缪尔在评论中建议:

我用的最短的一个基本上是Nomad的:

.>out.txt

它会给出一个错误:

'.' is not recognized as an internal or external command

但是这个错误是在stderr上。>只重定向没有产生任何东西的stdout。 因此会创建一个空文件。 这里可以忽略错误消息。或者,就像Rain的回答一样,重定向到NUL:

.>out.txt 2>NUL

(原答案,2009年11月)

echo.>filename

(echo ""实际上会把""放入文件!echo中没有'。’会把“Command ECHO activated”放在文件中…)

注意:结果文件不是空的,但包含一个返回行序列:2字节。


这个讨论指向一个真正的空文件的真正批处理解决方案:

 <nul (set/p z=) >filename

 dir filename
 11/09/2009  19:45                 0 filename
 1 file(s)                         0 bytes

“<nul”向set/p命令输出一个空响应,这将导致 变量保持不变。与通常的set/p一样,字符串指向 等号的右侧显示为提示符,没有CRLF。

因为这里“等号右边的字符串”是空的……结果是一个空文件。


cd. >文件名的区别(在Patrick Cuff的回答中提到过,也会产生一个0字节长度的文件)是这个“重定向位”(<nul…trick)可以用来回声行没有任何CR:

<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt

dir命令应该指示文件大小为11字节:"helloworld!"。

其他回答

你还可以用:

echo. 2>foo

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

你可以写你自己的触摸。

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

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

使用复制> your_file_name。命令提示符中的扩展 就像

P:\excecise> copy > Sample.txt

打开文件:

type file.txt

新文件:

方法一:输入nul > file.txt 这是一个文本文件> sample.txt 方式三:notepad myfile.txt <按Enter>

编辑内容:

notepad file.txt

Copy

copy file1.txt file1Copy.txt

重命名

rename file1.txt file1_rename.txt

删除文件:

del file.txt