639 Stimmen

Wie kann ich eine leere Datei an der Befehlszeile in Windows erstellen?

Wie kann ich eine leere Datei an der DOS/Windows-Befehlszeile erstellen?

Ich habe es versucht:

copy nul > file.txt

Aber es wird immer angezeigt, dass eine Datei kopiert wurde.

Gibt es eine andere Methode im Standard-Cmd?

Es sollte eine Methode sein, die nicht den touch Befehl von Cygwin oder anderen nicht standardmäßigen Befehlen erfordert. Der Befehl muss aus einem Skript heraus ausgeführt werden, daher können keine Tastenanschläge verwendet werden.

0 Stimmen

Gerade habe ich einen echten Batch-Befehl gefunden, der zu einer leeren Datei (0 Byte) führt: Ich habe meine Antwort aktualisiert.

4 Stimmen

Doppelt: stackoverflow.com/questions/210201, "Wie erstelle ich eine leere Textdatei aus einer Stapeldatei?". (Aber meiner bescheidenen Meinung nach sind die Antworten hier besser.)

0 Stimmen

Ja, der Befehl copy nul > file.txt wird erstellt und hat den Text "1 Datei(en) kopiert." Eine leere Datei wird nicht erstellt.

714voto

VonC Punkte 1117238

Ohne Umleitung weisen Luc Vu oder Erik Konstantopoulos hierauf hin aus:

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

"Wie erstelle ich eine leere Textdatei aus einer Batchdatei heraus?" (2008) weist ebenfalls darauf hin:

type NUL > EmptyFile.txt
# auch
echo. 2>EmptyFile.txt
copy nul file.txt > nul # auch in Antwort unten in qid
REM. > empty.file
fsutil file createnew file.cmd 0 # um eine Datei auf einem gemappten Laufwerk zu erstellen

Nomad erwähnt eine originale Methode:

C:\Users\VonC\prog\tests>aaaa > empty_file
'aaaa' wird als interner oder externer Befehl, ein Programm oder eine Batchdatei erkannt.

C:\Users\VonC\prog\tests>dir

 Ordner C:\Users\VonC\prog\tests

27.11.2013  10:40              .
27.11.2013  10:40              ..
27.11.2013  10:40                 0 empty_file

In gleichem Geist schlägt Samuel in den Kommentaren vor:

der Kürzeste, den ich verwende, ist grundsätzlich der von Nomad:

.>out.txt

Es gibt einen Fehlermeldung:

'.' wird als interner oder externer Befehl nicht erkannt

Aber dieser Fehler ist auf stderr. Und > leitet nur stdout um, wo nichts erzeugt wurde.
Deshalb die Erstellung einer leeren Datei.
Die Fehlermeldung kann hier ignoriert werden. Oder, wie in Rain's Antwort, umgeleitet nach NUL:

.>out.txt 2>NUL

(Ursprüngliche Antwort, November 2009)

echo.>filename

(echo "" würde tatsächlich "" in die Datei schreiben! Und echo ohne '.' würde "Befehl ECHO aktiviert" in die Datei schreiben...)

Anmerkung: Die resultierende Datei ist nicht leer, sondern enthält eine Zeilenschaltung: 2 Bytes.


Diese Diskussion weist auf eine echte Batch-Lösung für eine echte leere Datei hin:

 filename

 dir filename
 11.09.2009  19:45                 0 filename
 1 Datei(en)                         0 Bytes

Das "" leitet eine `nul` Antwort an den `set/p`-Befehl weiter, was dazu führt, dass die verwendete Variable unverändert bleibt. Wie üblich bei `set/p`, wird der rechts vom Gleichheitszeichen stehende String als Eingabeaufforderung ohne CRLF angezeigt.



Da hier der "rechts vom Gleichheitszeichen stehende String" leer ist... resultiert dies in einer leeren Datei.

------

Der Unterschied zu `cd. > filename` (das in [Patrick Cuffs Antwort](https://stackoverflow.com/questions/1702762/how-to-create-an-empty-file-in-the-command-line/1703040#1703040) erwähnt wird und ebenfalls eine Datei mit 0-Byte-Länge erstellt) ist, dass dieser "Umleitungs-Trick" (das `-Trick) verwendet werden kann, um **Zeilen ohne CR** zu **echoen**:`

``

    out.txt
    >out.txt
    dir out.txt

> Der `dir`-Befehl sollte die Dateigröße als 11 Bytes anzeigen: "`helloworld!`".

`` ```

307voto

Justin Punkte 2909

Versuchen Sie dies:

type NUL > 1.txt

Dies wird definitiv eine leere Datei erstellen.

192voto

Patrick Cuff Punkte 27220

Hier ist noch eine andere Möglichkeit:

cd . > filename

83voto

qid Punkte 1853

Wenn Sie wirklich eine vollständig leere Datei ohne jegliche Ausgabe nach stdout möchten, können Sie ein wenig tricksen:

copy nul file.txt > nul

Leiten Sie einfach stdout zu nul um, und die Ausgabe von copy verschwindet.

68voto

iCrazybest Punkte 2649

Datei öffnen:

type file.txt

Neue Datei:

  • Weg 1: type nul > file.txt
  • Weg 2: echo "Dies ist eine Beispieldatei" > beispiel.txt
  • Weg 3: notepad meineDatei.txt Enter>

Inhalt bearbeiten:

notepad file.txt

Kopieren

copy file1.txt file1_copy.txt

Umbenennen

  • Weg 1: rename file1.txt file1_rename.txt
  • Weg 2: ren file1.txt file1_rename.txt
  • Weg 3: move file1.txt ./file1_rename.txt

Datei verschieben:

move file1.txt pfad/wohin/verschieben/

Sie können die Datei auch umbenennen während des Verschiebens:

move file1.txt pfad/wohin/verschieben/file1_rename.txt

Datei löschen:

del file.txt

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X