首页 文章

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

提问于
浏览
394

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

我试过了:

copy nul > file.txt

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

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

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

30 回答

  • 7
    echo "" > filename
    

    我相信这适用于Windows / DOS,但我最近的实践经验已经有一段时间了 . 我确实知道它基本上适用于任何符合_336143标准的操作系统 .

  • 3
    cd > filename.cfg
    

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

  • 2

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

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

    title > file.txt
    
  • 1

    您可以使用旧命令

    copy con file_name.ext
    

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

  • 73

    试试这个:

    type NUL > 1.txt
    

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

  • 40

    这是另一种方式:

    cd. > filename
    
  • 0

    没有重定向,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,其中没有生成任何内容 .
    因此创建了一个空文件 . 这里可以忽略错误消息 .


    (原始答案,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”管道对set / p命令的无响应,这将导致变量保持不变 . 与set / p一样,等号右侧的字符串显示为没有CRLF的提示 .

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


    cd. > filename (在Patrick Cuff's answer中提到并且也生成一个0字节长度的文件)的区别在于"bit of redirection"( <nul... 技巧)可以用于 echo lines without any CR

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

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

  • 241

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

    break > "file.txt"
    
  • 4

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

  • 0

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

    NUL > file_name.extention
    

    或者你输入这个

    echo .> file_name.extention
    
  • 7

    这对我有用,

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

  • 5

    Just I have tried in windows

    copy con file.txt
    

    然后按Enter键,然后按Ctrl Z Enter

    它对我有用 .

    For Ubuntu usually I am creating a file using VI command

    vi file.txt
    

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

  • 4

    copy con SomeFile.txt输入

    Ctrl-Z输入

  • 21

    试试这个:

    echo $null >> filename
    

    见:superUser

  • 11

    这是另一种方式:

    rem/ > file.ext
    

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

  • 5

    另一种方式:

    copy nul 2>empty_file.txt
    
  • 3
    call>file.txt
    

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

  • 5

    所以你可以创建一个空文件

    '' > newfile.txt
    

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

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

  • 1
    echo.|set /p=>file
    

    echo. 压制"Command ECHO activated"

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

  • 1

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

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

    fsutil file createnew <filename> <size>
    

    一个例子:

    fsutil file createnew myEmptyFile.txt 0
    

    以下是* nix命令行 .

    touch filename
    

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

  • 1

    你可以自己动手 .

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

    我阅读了很多线程,但这不是最短的方式 .

    请使用命令:

    >copy /b NUL empty_file.txt

  • 2

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

    抱歉,我迟到了 .

    UPDATE :此外 copy nul filename 无需重定向(更明显的解决方案) .

  • 469

    Open file :

    type file.txt
    

    New file :

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

    Edit content:

    notepad file.txt
    

    Copy

    copy file1.txt file1Copy.txt
    

    Rename

    rename file1.txt file1_rename.txt
    

    Delete file :

    del file.txt
    
  • 1
    • 创建包含内容 echo '' > %1 的bat文件 . (将文件命名为touch.bat)

    • 将文件夹添加到PATH变量 .

    • 您可以使用触摸来创建文件 . (例如: touch temp.txt 创建temp.txt文件)

    查看this文章了解更多信息 .

  • 30

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

    P:\excecise> copy > Sample.txt
    
  • 23

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

    echo . > myfile.txt
    

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

    copy /y nul myfile.txt
    
  • 4

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

    copy nul file.txt > nul
    

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

  • 84

    你也可以使用:

    echo. 2>foo
    

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

  • 3

    On Windows 我试过这样做

    echo off > fff1.txt
    

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

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

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

相关问题