How to create an empty file at the command line in Windows?
How to create an empty file at the DOS/Windows command-line?
copy nul > file.txt
but it always displays that a file was copied.
Is there any other 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.
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
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:
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.
(Original answer, November 2009)
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
<nul" pipes a
nulresponse to the
set/pcommand, 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
dircommand should indicate the file size as 11 bytes: "
type NUL > 1.txt
this will definitely create an empty file.
Read more... Read less...
Here's another way:
cd. > filename
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.
Open file :
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>
copy file1.txt file1Copy.txt
rename file1.txt file1_rename.txt
Delete file :
Reading comments on my post, I have to admit I didn't read the question right.
On the Windows command-line, one way would be to use fsutil:
fsutil file createnew <filename> <size>
fsutil file createnew myEmptyFile.txt 0
Below is for *nix command-line.
This command changes your modified date of a file or creates it if file is not found.