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

WindowsFileCmdCommand Line

Windows Problem Overview


How can I create an empty file at the DOS/Windows command-line?

I tried:

copy nul > file.txt

But it always displays that a file was copied.

Is there another method in the standard cmd?

It should be a method that does not require the touch command from Cygwin or any other nonstandard commands. The command needs to run from a script, so keystrokes cannot be used.

Windows Solutions


Solution 1 - Windows

Without redirection, Luc Vu or Erik Konstantopoulos point out to:

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

"How to create empty text file from a batch file?" (2008) also points to:

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 mentions 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

In the same spirit, Samuel suggests in the comments:

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

.>out.txt

It does give an error:

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

But this error is on stderr. And > only redirects stdout, where nothing have been produced.
Hence the creation of an empty file.
The error message can be disregarded here. Or, as in Rain's answer, redirected to NUL:

.>out.txt 2>NUL

(Original answer, November 2009)

echo.>filename

(echo "" would actually put "" in the file! And echo without the '.' would put "Command ECHO activated" in the file...)

Note: the resulting file is not empty but includes a return line sequence: 2 bytes.


This discussion points to a true batch solution for a real empty file:

 <nul (set/p z=) >filename

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

> The "<nul" 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.

Since here the "string to the right of the equal sign" is empty... the result is an empty file.


The difference with cd. > filename (which is mentioned in Patrick Cuff's answer and does also produce a 0-byte-length file) is that this "bit of redirection" (the <nul... trick) can be used to echo lines without any CR:

<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 11 bytes: "helloworld!".

Solution 2 - Windows

Try this:

type NUL > 1.txt

this will definitely create an empty file.

Solution 3 - Windows

Here's another way:

cd . > filename

Solution 4 - Windows

If you really want a totally empty file, without any output to stdout, you can cheat a little:

copy nul file.txt > nul

Just redirect stdout to nul, and the output from copy disappears.

Solution 5 - Windows

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

Solution 6 - Windows

echo "" > filename

I believe this works on Windows/DOS, but my last hands-on experience with either is quite a while ago. I do know for a fact that it works on basically any POSIX compliant OS.

Solution 7 - Windows

call>file.txt

This is the cleanest way I know.

Solution 8 - Windows

On the Windows command-line, one way would be to use fsutil:

fsutil file createnew <filename> <size>

An example:

fsutil file createnew myEmptyFile.txt 0

Below is for *nix command-line.

touch filename

This command changes your modified date of a file or creates it if file is not found.

Solution 9 - Windows

You can write your own touch.

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

Solution 10 - Windows

cd > filename.cfg 

worked when creating a file in C:/Program Files where you don't have the access to create files directly.

Solution 11 - Windows

For creating any type of file you can use the following code

type nul > (file_name).(file_type)

For example, if you want to create a text file then

type nul > demo.txt

If you want to create a JavaScript file then

type nul > demo.js

Solution 12 - Windows

You can create an empty file with

'' > newfile.txt

Navigate to the directory and type the above command in a PowerShell window.

Note that this will not work on the Windows command prompt.

Solution 13 - Windows

copy con SomeFile.txt Enter

Ctrl + Z and Enter.

Solution 14 - Windows

Yet another method that creates a zero byte file:

break > "file.txt"

Solution 15 - Windows

Use copy > your_file_name.extension in command prompt like

P:\excecise> copy > Sample.txt

Solution 16 - Windows

You could also use:

echo. 2>foo

The debug output for echo. will almost definitely be empty.

Solution 17 - Windows

Try this :abc > myFile.txt First, it will create a file with name myFile.txt in present working directory (in command prompt). Then it will run the command abc which is not a valid command. In this way, you have gotten a new empty file with the name myFile.txt.

Solution 18 - Windows

This worked for me,

echo > file.extension

Here's another way I found today. I got ideas from other answers, but it worked:

sometext > filename.extension

For example,

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

This would show an error message in the command prompt that,

xyz is not as an internal or external command, operable program or batch file.

But the weird thing I found was the file is being created in the directory even if the command is not a standard Windows command.

Solution 19 - Windows

type nul > filename will create a new empty file.

Also copy nul filename works without redirecting (more obvious solution).

Solution 20 - Windows

You can use the old command

copy con file_name.ext

Don't type anything. Just press F6 to save it. However, it will print "File copied", but when you open the file, it will be empty.

Solution 21 - Windows

. >> file.txt
  • >> appends standard output into a file
  • . is just a wrong command to pass the empty standard output to >>

However, you'll see standard error's output in the CMD:

> '.' is not recognized as an internal or external command, operable > program or batch file.

You can suppress this error message (if you want) by redirecting standard error to NUL.

. >> file.txt 2> nul

Solution 22 - Windows

I read many threads but it is not the shortest way.

Please use command:

>copy /b NUL empty_file.txt

Solution 23 - Windows

Solution 24 - Windows

  • Create a bat file with content echo '' > %1 (name the file as touch.bat).
  • Add the folder to the PATH environment variable.
  • You can use touch to create files. (for example: touch temp.txt creates the temp.txt file)

Check this article for more information.

Solution 25 - Windows

Yet another way:

copy nul 2> empty_file.txt

Solution 26 - Windows

I have just tried in Windows:

copy con file.txt

Then press the Enter key. Then press Ctrl + Z and Enter.

And it worked for me.

For Ubuntu, usually I am creating a file using the vi command

vi file.txt

It will open the file. Then press the Esc key. Then type :wp and press the Enter key. It will create a new file with empty data.

Solution 27 - Windows

On Windows

I tried doing this

echo off > fff1.txt

And it created a file named fff1.txt with a file size of 0 KB.

I didn't find any commands other than this that could create a empty file.

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

Solution 28 - Windows

Here is yet another way:

rem/ > file.ext

The slash / is mandatory; without it the redirection part is commented out by rem.

Solution 29 - Windows

There are also other easy ways to create files.

For example, you can create file and open it with notepad from cmd

notepad newFile.txt

This will prompt you that there is no such file and if you want to create it as a new file.

You can create any kind of file like this.

For example,

notepad newFile.js

OR

notepad newFile.py

Not only Notepad, you can also use other apps to do so. E.g, you can use Visual Studio Code to create and open new files.

For example,

code newFile.py

This will create a new Python file and open it in vs code (if you have vs code installed).

You can also create other types of files with this method also.

Solution 30 - Windows

First create your file so that it exists:

echo . > myfile.txt

Then overwrite the created file with an empty version using the copy command:

copy /y nul myfile.txt

Solution 31 - Windows

This will change the command line window title, but it will also create a empty file.

title > file.txt

Solution 32 - Windows

Run CMD in administrator mode and type this:

NUL > file_name.extention

Or you type this

echo .> file_name.extention

Solution 33 - Windows

echo. | set /p=>file

echo. suppresses the "Command ECHO activated"

| set /p= prevents newline (and the file is now 0 byte)

Solution 34 - Windows

As a solution from this question, please install gVim firstly. During the installation, please remember to check the option "Create .bat files for command line use" as shown below.

Enter image description here

Some bat files like vim.bat and gvim.bat will be installed under C:\Windows. Add C:\Windows to system Path if it's not done.

Relaunch the cmd.exe and type gvim empty_file.txt. You will launch gVim to edit the empty file from scratch. If you don't want to leave your "Command Prompt" console, type vim empty_file.txt instead.

Solution 35 - Windows

Create an empty file, Windows PowerShell:

> echo fileName.fileExtension

If you want to open in Notepad:

> nodepad fileName.fileExtension

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionGrendlerView Question on Stackoverflow
Solution 1 - WindowsVonCView Answer on Stackoverflow
Solution 2 - WindowsJustinView Answer on Stackoverflow
Solution 3 - WindowsPatrick CuffView Answer on Stackoverflow
Solution 4 - WindowsqidView Answer on Stackoverflow
Solution 5 - WindowsiCrazybestView Answer on Stackoverflow
Solution 6 - WindowsKrisView Answer on Stackoverflow
Solution 7 - WindowscureView Answer on Stackoverflow
Solution 8 - WindowsnashView Answer on Stackoverflow
Solution 9 - WindowsPaul NathanView Answer on Stackoverflow
Solution 10 - WindowsSubhashiView Answer on Stackoverflow
Solution 11 - WindowsDarshan JainView Answer on Stackoverflow
Solution 12 - WindowsAswin 1054View Answer on Stackoverflow
Solution 13 - WindowsDRappView Answer on Stackoverflow
Solution 14 - WindowsfoxidriveView Answer on Stackoverflow
Solution 15 - WindowsRaj Kumar MishraView Answer on Stackoverflow
Solution 16 - WindowsCraigView Answer on Stackoverflow
Solution 17 - WindowsNomadView Answer on Stackoverflow
Solution 18 - WindowsLuckyView Answer on Stackoverflow
Solution 19 - WindowsEKonsView Answer on Stackoverflow
Solution 20 - WindowsAmado SaladinoView Answer on Stackoverflow
Solution 21 - WindowsRainView Answer on Stackoverflow
Solution 22 - Windowssuhao399View Answer on Stackoverflow
Solution 23 - Windowsshireef khatabView Answer on Stackoverflow
Solution 24 - WindowsPranay KumarView Answer on Stackoverflow
Solution 25 - WindowsGadBroView Answer on Stackoverflow
Solution 26 - WindowsARJUN KPView Answer on Stackoverflow
Solution 27 - WindowsOMKAR AGRAWALView Answer on Stackoverflow
Solution 28 - WindowsaschipflView Answer on Stackoverflow
Solution 29 - WindowsIrfan waniView Answer on Stackoverflow
Solution 30 - WindowsDowopfanView Answer on Stackoverflow
Solution 31 - WindowsninixView Answer on Stackoverflow
Solution 32 - WindowsLekensView Answer on Stackoverflow
Solution 33 - Windows131View Answer on Stackoverflow
Solution 34 - WindowsEugeneView Answer on Stackoverflow
Solution 35 - WindowsAlamView Answer on Stackoverflow