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

我试着:

copy nul > file.txt

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

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

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


echo "" > filename

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


copy con SomeFile.txt输入

按Ctrl + Z并回车。


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!"。


你可以写你自己的触摸。

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

在Windows命令行中,一种方法是使用fsutil:

fsutil file createnew <filename> <size>

一个例子:

fsutil file createnew myEmptyFile.txt 0

下面是*nix命令行。

touch filename

此命令更改文件的修改日期,如果找不到文件,则创建该文件。


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

copy nul file.txt > nul

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


还有另一种方法:

cd . > filename

你还可以用:

echo. 2>foo

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


试试这个:

type NUL > 1.txt

这肯定会创建一个空文件。


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

echo . > myfile.txt

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

copy /y nul myfile.txt

call>file.txt

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


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


echo. | set /p=>file

的回声。抑制“命令ECHO激活”

| set /p=阻止换行(现在文件是0字节)


这将改变命令行窗口的标题,但也将创建一个空文件。

title > file.txt

还有另一个创建零字节文件的方法:

break > "file.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命令。


打开文件:

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

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

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


我读了很多文章,但这不是最短的方法。

请使用命令:

>copy /b NUL empty_file.txt


还有另一种方式:

copy nul 2> empty_file.txt

还有另一种方法:

rem/ > file.ext

斜杠/是强制的;如果没有它,重定向部分将被rem注释掉。


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

NUL > file_name.extention

或者输入这个

echo .> file_name.extention

我刚刚在Windows中尝试过:

copy con file.txt

然后按Enter键。然后按“Ctrl + Z”,按“Enter”。

这对我很有效。

对于Ubuntu,我通常使用vi命令创建一个文件

vi file.txt

它将打开文件。然后按“Esc”键。然后输入:wp并按Enter键。它将创建一个包含空数据的新文件。


试试这个:

echo $null >> filename 

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


在Windows上

我试过这么做

echo off > fff1.txt

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

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

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


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

P:\excecise> copy > Sample.txt

cd > filename.cfg 

当在C:/Program Files中创建文件时,你不能直接创建文件。


创建一个空文件

'' > newfile.txt

导航到目录并在PowerShell窗口中键入上述命令。

注意,这在Windows命令提示符上不起作用。


您可以使用旧命令

copy con file_name.ext

不要打任何东西。按F6保存即可。然而,它会打印“文件复制”,但当你打开文件时,它将是空的。


创建内容为“> %1”的bat文件(将文件命名为touch.bat)。 将文件夹添加到PATH环境变量中。 你可以使用触摸来创建文件。(例如:touch temp.txt创建temp.txt文件)

查看这篇文章了解更多信息。


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

type nul > (file_name).(file_type)

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

type nul > demo.txt

如果你想创建一个JavaScript文件

type nul > demo.js

. >> file.txt

>>将标准输出追加到文件中 . 仅仅是一个错误的命令传递空标准输出>>

然而,你会在CMD中看到标准错误的输出:

”。’不被认为是一个内部或外部命令,可操作 程序或批处理文件。

您可以通过将标准错误重定向到NUL来抑制此错误消息(如果您愿意)。

. >> file.txt 2> nul

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

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

notepad newFile.txt

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

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

例如,

notepad newFile.js

OR

notepad newFile.py

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

例如,

code newFile.py

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

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


创建一个空文件,Windows PowerShell:

回声fileName.fileExtension

如果你想在记事本中打开:

节点垫文件名.文件扩展名


Echo是一个命令,它创建一个文件,并将传递给它的文本作为参数。

例如,如果你想创建一个名为Navin .txt的文件,其中Navin是一个web开发人员。

然后回显“Navin is a web developer in it”> Navin .txt

如果你想要你的新文件完全为空,只需要让字符串为空,就像这样- echo "" > filename.txt"

将用给定的文本创建一个新文件。