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

How to create an empty file at the command line in Windows?

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

我试过:

1
copy nul > file.txt

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

标准命令中还有其他方法吗?

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


在没有重定向的情况下,Luc Vu或Erik Konstantopoulos指出:

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

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

1
2
3
4
5
6
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提到了一个原版:

1
2
3
4
5
6
7
8
9
10
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

同样,塞缪尔在评论中建议:

the shortest one I use is basically the one by Nomad:

1
.>out.txt

它确实会给出一个错误:

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

但此错误在stderr上。而>只重定向stdout,在那里什么也没有产生。因此创建了一个空文件。此处可以忽略错误消息。

(原始答案,2009年11月)

1
echo.>filename

(echo""实际上会把"放进档案中"!没有"."的echo会把"Command ECHO activated放在文件中…)

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

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

1
2
3
4
5
 <nul (set/p z=) >filename

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

The"" pipes a nul response to the set/p command, which will cause the
variable used to remain unchanged. As usual with set/p, the string to the
right of the equal sign is displayed as a prompt with no CRLF.

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

cd. > filename的不同之处在于,这个"重定向位"(技巧)可以用于无任何cr的回声线,而patrick cuff的答案中提到了这一点,并且也产生了一个0字节长的文件:

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

The dir command should indicate the file size as 12 bytes:"hello world!".


试试这个:

1
type NUL > 1.txt

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


另一种方法是:

1
cd. > filename


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

1
copy nul file.txt > nul

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


打开文件:

1
type file.txt

新文件:

1
2
3
Way 1 : type nul > file.txt
Way 2 : echo This is a sample text file > sample.txt
Way 3 : notepad myfile.txt [cc]

编辑内容:

1
notepad file.txt

拷贝

1
copy file1.txt file1Copy.txt

重命名

1
rename file1.txt file1_rename.txt

删除文件:

1
del file.txt

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

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

1
fsutil file createnew <filename> <size>

一个例子:

1
fsutil file createnew myEmptyFile.txt 0

下面是*nix命令行。

1
touch filename

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


1
echo""> filename

我相信这在windows/dos上是可行的,但我最后一次亲身体验是在很久以前。我知道,它基本上适用于任何符合POSIX的操作系统。


1
call>file.txt

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


你可以自己写。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//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;
}


1
cd > filename.cfg

在c:/program文件中创建文件时工作,您没有直接创建文件的权限。


复制con somefile.txt enter

Ctrl Zakbd enter


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


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

1
break >"file.txt"

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

1
P:\excecise> copy > Sample.txt


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

对不起,我迟到了。

更新:另外,copy nul filename在不重定向的情况下工作(更明显的解决方案)。


您可以使用旧命令

1
copy con file_name.ext

不要键入任何内容,只需按F6保存,但它将打印"文件已复制",但打开文件时,它将为空。


您还可以使用:

1
echo. 2>foo

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


另一种方式:

1
copy nul 2>empty_file.txt

这样您就可以创建一个空文件

1
'' > newfile.txt

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

注意:这在Windows命令提示下不起作用。


在Windows上我试过这么做

1
echo off > fff1.txt

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

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

Note: You have to be in the directory you wish to create the file.


这对我很有用,

1
echo > file.extension

这是我今天发现的另一种方法,从其他答案中获得想法,但它奏效了。

1
sometext > filename.extension

如。

1
2
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命令,该文件仍在目录中创建。


只是我在窗户里试过了

1
copy con file.txt

然后按enter键,然后按ctrl+zakbd enter

这对我很有用。

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

1
vi file.txt

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


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

有关详细信息,请参阅本文。


试试这个:

1
echo $null >> filename

超级用户


我读了很多线,但这不是最短的路。

请使用命令:

>copy /b NUL empty_file.txt


在admissrator模式下运行cmd并键入:

1
NUL > file_name.extention

或者你打这个

1
echo .> file_name.extention

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

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

1
title > file.txt

还有另一种方法:

1
rem/ > file.ext

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


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

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

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

type nul > demo.txt

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

type nul > demo.js


作为Windows上的VIM用户,我在这个问题线程中找不到答案。

作为此线程的解决方案,请首先安装GVIM。在安装过程中,请记住选中"为命令行使用创建.bat文件"选项,如下所示。

enter image description here

一些BAT文件(如vim.bat和gvim.bat)将安装在C:windows下。如果没有完成,请将C:windows添加到系统路径。

重新启动cmd.exe并键入gvim empty_file.txt,您将启动gvim从头开始编辑空文件。如果不想离开"命令提示"控制台,请键入vim empty_file.txt

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


1
echo.|set /p=>file

echo.抑制"命令回波激活"

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


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

1
echo . > myfile.txt

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

1
copy /y nul myfile.txt