如何在Windows的命令行中创建一个空文件?

时间:2009-11-09 18:18:15

标签: windows file cmd command-line

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

我试过了:

copy nul > file.txt

但它始终显示文件已被复制。

标准cmd中还有其他方法吗?

它应该是一种不需要Cygwin的touch命令或任何其他非标准命令的方法。 该命令需要从脚本运行,因此无法使用击键。

34 个答案:

答案 0 :(得分:512)

没有重定向,Luc VuErik Konstantopoulos point out来:

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

How to create empty text file from a batch file?”(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提及an original one

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

本着同样的精神,Samuel建议in the comments

  

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

.>out.txt

确实会出错:

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

但这个错误发生在stderr上。并且>仅重定向stdout,其中<​​em> nothing 已生成 因此创建了一个文件。这里可以忽略错误消息。


(原始答案,2009年11月)

echo.>filename

echo ""实际上会将“”放在文件中!echo没有'。'会将“Command ECHO activated”放在文件中...)

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


discussion指向真正的文件的批处理解决方案:

 <nul (set/p z=) >filename

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

<nul”管道对nul命令的set/p响应,这将导致   变量以前保持不变。像往常一样set/p,字符串   等号右侧显示为没有CRLF的提示。

由于此处“等号右侧的字符串”为空...结果为空文件。


cd. > filename的区别(在Patrick Cuff's answer中提到并且还产生一个0字节长度的文件)是这个“重定向位”(<nul...技巧)可用于回送没有任何CR的行

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

dir命令应将文件大小指示为12个字节:“hello world!”。

答案 1 :(得分:254)

试试这个:

type NUL > 1.txt

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

答案 2 :(得分:94)

这是另一种方式:

cd. > filename

答案 3 :(得分:74)

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

copy nul file.txt > nul

只需将stdout重定向到nul,副本的输出就会消失。

答案 4 :(得分:43)

打开文件:

type file.txt

新文件:

Way 1 : type nul > file.txt
Way 2 : echo This is a sample text file > sample.txt
Way 3 : notepad myfile.txt <press enter>

修改内容

notepad file.txt

复制

copy file1.txt file1Copy.txt

重命名

rename file1.txt file1_rename.txt

删除文件:

del file.txt

答案 5 :(得分:31)

在我的帖子上阅读评论,我不得不承认我没有正确地阅读这个问题。

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

fsutil file createnew <filename> <size>

一个例子:

fsutil file createnew myEmptyFile.txt 0

以下是* nix命令行。

touch filename

此命令会更改文件的修改日期,或者在找不到文件时创建文件。

答案 6 :(得分:25)

echo "" > filename

我相信这适用于Windows / DOS,但我最近的实践经验是很久以前的事了。我确实知道它基本上适用于任何POSIX兼容的操作系统。

答案 7 :(得分:21)

call>file.txt

这是我所知道的最干净的方式。

答案 8 :(得分:11)

你可以自己动手。

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

答案 9 :(得分:7)

cd > filename.cfg 

在C:/ Program Files中创建文件时有效,您无法直接创建文件。

答案 10 :(得分:6)

复制con SomeFile.txt 输入

Ctrl-Z 输入

答案 11 :(得分:5)

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

答案 12 :(得分:5)

在命令提示符中使用copy > your_file_name.extension 喜欢

P:\excecise> copy > Sample.txt

答案 13 :(得分:5)

另一种创建零字节文件的方法:

break > "file.txt"

答案 14 :(得分:4)

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

抱歉,我迟到了。

更新copy nul filename也无法重定向(更明显的解决方案)。

答案 15 :(得分:4)

您可以使用旧命令

copy con file_name.ext

不要输入任何内容,只需按F6保存即可,但是会打印“文件复制”,但是当你打开文件时,它会是空的

答案 16 :(得分:4)

你也可以使用:

echo. 2>foo

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

答案 17 :(得分:3)

这对我有用,

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命令,也会在目录中创建文件。

答案 18 :(得分:3)

另一种方式:

copy nul 2>empty_file.txt

答案 19 :(得分:3)

在Windows上 我试过这个

echo off > fff1.txt

并创建了一个名为 fff1.txt 的文件,文件大小为0kb

我没有找到除此之外的任何可能创建空文件的命令。

  

注意:您必须位于要创建文件的目录中。

答案 20 :(得分:3)

所以你可以用

创建一个空文件
'' > newfile.txt

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

请注意,这不适用于Windows命令提示符。

答案 21 :(得分:2)

我读过许多帖子,但这不是最简短的方法。

请使用命令:

>copy /b NUL empty_file.txt

答案 22 :(得分:2)

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

类型nul>(文件名)。(文件类型)

例如。如果要创建文本文件,则

  

输入nul> demo.txt

如果您要创建一个javascript文件,那么

  

输入nul> demo.js

答案 23 :(得分:2)

我刚试过Windows

copy con file.txt

然后按 Enter 键然后按 Ctrl + Z Enter

它对我有用。

对于Ubuntu,我通常使用VI命令创建文件

vi file.txt

它将打开文件,然后按 ESC 键,然后键入:wp ,然后按输入键。它将创建一个包含空数据的新文件。

答案 24 :(得分:2)

试试这个:

echo $null >> filename 

请参阅:superUser

答案 25 :(得分:2)

  • 创建内容为echo '' > %1的bat文件。 (将文件命名为touch.bat)
  • 将文件夹添加到PATH变量。
  • 您可以使用触摸来创建文件。 (例如:touch temp.txt创建temp.txt文件)

查看this文章了解详情。

答案 26 :(得分:1)

今天我发现了一个新的:)

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

title > file.txt

答案 27 :(得分:1)

.>>file.txt
  • >>STDOUT附加到文件中
  • .只是将空的STDOUT传递给>>的错误命令

但是,您会在STDERR中看到CMD的输出:

'。不被识别为内部或外部命令,可操作 程序或批处理文件。

您可以通过将STDERR重定向到NUL来抑制此错误消息(如果需要)。

.>>file.txt 2>nul

答案 28 :(得分:1)

以管理员模式运行CMD并输入:

NUL > file_name.extention

或者您输入此

echo .> file_name.extention

答案 29 :(得分:1)

这是另一种方式:

rem/ > file.ext

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

答案 30 :(得分:0)

首先创建您的文件,使其存在:

echo . > myfile.txt

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

copy /y nul myfile.txt

答案 31 :(得分:0)

echo.|set /p=>file

echo.禁止“激活命令ECHO”

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

答案 32 :(得分:0)

作为Windows上的VIM用户,我无法在此问题主题中找到答案。

作为this thread的解决方案,请先安装gvim 在安装过程中,请记得选中&#34;创建.bat文件以供命令行使用&#34;如下所示。

enter image description here

某些bat文件如vim.bat和gvim.bat将安装在 C:\ Windows 下。 如果未完成,请将 C:\ Windows 添加到系统路径

重新启动 cmd.exe 并键入gvim empty_file.txt,您将启动gvim以从头开始编辑空文件。如果你不想离开你的命令提示符&#34;控制台,改为输入vim empty_file.txt

希望这个答案可以帮助那些想要在创建空文件时从Windows命令提示符启动VIM的人。

答案 33 :(得分:0)

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

例如,您可以从 cmd

创建文件并使用 notepad 打开它
notepad newFile.txt

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

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

例如

notepad newFile.js

notepad newFile.py

不仅是记事本,您还可以使用其他应用来执行此操作。例如,您可以使用 Visual Studio Code 创建和打开新文件。

例如

code newFile.py

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

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