Ohne Weiterleitung weisen Luc Vu oder Erik Konstantopoulos auf Folgendes hin:
copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt
" Wie erstelle ich eine leere Textdatei aus einer Batchdatei? " (2008) verweist außerdem auf:
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 erwähnt ein Original :
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
Im gleichen Sinne schlägt Samuel in den Kommentaren vor :
Das kürzeste, das ich benutze, ist im Grunde das von Nomad:
.>out.txt
Es gibt einen Fehler:
'.' is not recognized as an internal or external command
Aber dieser Fehler ist auf stderr. Und >
leitet nur stdout weiter, wo nichts produziert wurde.
Daher die Erstellung einer leeren Datei. Die Fehlermeldung kann hier ignoriert werden.
(Ursprüngliche Antwort, November 2009)
echo.>filename
(echo ""
würde tatsächlich "" in die Datei einfügen! Und echo
ohne das '.' würde "Command ECHO activated
" in die Datei einfügen ...)
Hinweis: Die resultierende Datei ist nicht leer sondern enthält eine Zeilenumbruchsequenz: 2 Byte.
Diese Diskussion zeigt eine echte Batch-Lösung für eine echte leere Datei:
<nul (set/p z=) >filename
dir filename
11/09/2009 19:45 0 filename
1 file(s) 0 bytes
Das " <nul
" leitet eine nul
Antwort auf den set/p
Befehl weiter, wodurch die verwendete Variable unverändert bleibt. Wie üblich set/p
wird die Zeichenfolge rechts neben dem Gleichheitszeichen als Eingabeaufforderung ohne CRLF angezeigt.
Da hier die "Zeichenfolge rechts vom Gleichheitszeichen" leer ist ... ist das Ergebnis eine leere Datei.
Der Unterschied zu cd. > filename
(der in Patrick Cuffs Antwort erwähnt wird und auch eine Datei mit einer Länge von 0 Byte erzeugt) besteht darin, dass dieses "Bit der Umleitung" (der <nul...
Trick) verwendet werden kann, um Zeilen ohne CR zu wiederholen :
<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt
Der dir
Befehl sollte die Dateigröße als 11 Byte angeben: " helloworld!
".