it-swarm.com.de

Wie erstelle ich eine leere Datei in der Befehlszeile in Windows?

Wie erstelle ich eine leere Datei in der DOS/Windows-Befehlszeile?

Ich habe es versucht:

copy nul > file.txt

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

Gibt es eine andere Methode in der Standard-Cmd?

Es sollte eine Methode sein, die den Befehl touch von Cygwin oder andere nicht standardmäßige Befehle nicht benötigt. Der Befehl muss über ein Skript ausgeführt werden, damit Tastatureingaben nicht verwendet werden können.

454
Grendler

Ohne Umleitung Luc V oder Erik Konstantopoulospointout zu:

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

" Wie erstelle ich eine leere Textdatei aus einer Stapeldatei? " (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

In demselben Sinne schlägt Samuel vor in den Kommentaren :

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.


(Originalantwort, 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 Rückgabereihenfolge: 2 Bytes.


Diese Diskussion verweist auf 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

Der Befehl "<nul" leitet eine nul Antwort an den Befehl set/p weiter, wodurch die verwendete Variable unverändert bleibt. Wie bei set/p üblich, wird die Zeichenfolge rechts vom Gleichheitszeichen als Eingabeaufforderung ohne CRLF angezeigt.

Da hier die "Zeichenkette 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 "Umleitungsbit" (der <nul... Trick) kann verwendet werden, um Echolinien ohne CR auszugeben:

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

Der Befehl dir sollte die Dateigröße mit 12 Byte angeben: "hello world!".

524
VonC

Versuche dies:

type NUL > 1.txt

dadurch wird definitiv eine leere Datei erstellt.

259
Justin

Hier ist ein anderer Weg:

cd. > filename
96
Patrick Cuff

Wenn Sie wirklich eine völlig leere Datei ohne Ausgabe auf stdout wollen, können Sie ein wenig schummeln:

copy nul file.txt > nul

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

74
qid

Datei öffnen:

type file.txt

Neue Datei:

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

Inhalt bearbeiten:

notepad file.txt

Kopie

copy file1.txt file1Copy.txt

mbenennen

rename file1.txt file1_rename.txt

Datei löschen:

del file.txt
43
iCrazybest

Wenn ich Kommentare zu meinem Beitrag lese, muss ich zugeben, dass ich die Frage nicht richtig gelesen habe.

Eine Möglichkeit in der Windows-Befehlszeile wäre fsutil :

fsutil file createnew <filename> <size>

Ein Beispiel:

fsutil file createnew myEmptyFile.txt 0

Unten steht für * nix die Kommandozeile.

touch filename

Dieser Befehl ändert das Änderungsdatum einer Datei oder erstellt sie, wenn die Datei nicht gefunden wird.

32
nash
echo "" > filename

Ich glaube, dass dies unter Windows/DOS funktioniert, aber meine letzten praktischen Erfahrungen mit beiden sind schon eine Weile her. Ich weiß, dass es auf jedem POSIX kompatiblen Betriebssystem funktioniert.

26
Kris
call>file.txt

das ist der sauberste Weg, den ich kenne.

22
nephi12

Sie können Ihre eigene Note schreiben.

//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;
}
11
Paul Nathan
cd > filename.cfg 

funktionierte beim Erstellen einer Datei in C:/Programme, auf die Sie nicht direkt zugreifen können.

8
Hydrogirl

kopieren Sie mit SomeFile.txt Enter

Ctrl-ZEnter

6
DRapp

Noch eine andere Methode, die eine Null-Byte-Datei erstellt:

break > "file.txt"
5
foxidrive

Verwenden Sie copy > your_file_name.extension in der Eingabeaufforderung wie

P:\excecise> copy > Sample.txt
5

Versuchen Sie Folgendes: abc > myFile.txt Zuerst wird eine Datei mit dem Namen myFile.txt im aktuellen Arbeitsverzeichnis erstellt (in der Eingabeaufforderung). Dann wird der Befehl abc ausgeführt, der kein gültiger Befehl ist. Auf diese Weise haben Sie eine neue leere Datei mit dem Namen myFile.txt erhalten.

5
Nomad

so kannst du mit eine leere datei erstellen

'' > newfile.txt

navigieren Sie zum Verzeichnis und geben Sie den obigen Befehl im PowerShell-Fenster ein.

Beachten Sie, dass dies bei Windows-Eingabeaufforderungen nicht funktioniert.

4
Aswin 1054

Sie können den alten Befehl verwenden

copy con file_name.ext

geben Sie nichts ein, drücken Sie einfach F6, um es zu speichern, es wird jedoch "Datei kopiert" gedruckt, aber wenn Sie die Datei öffnen, wird es leer sein

4
Amado Saladino

Sie könnten auch verwenden:

echo. 2>foo

Die Debug-Ausgabe für echo. ist mit ziemlicher Sicherheit leer.

4
Craig

type nul>filename erstellt eine neue leere Datei.

Entschuldigung, ich bin zu spät.

UPDATE: Auch copy nul filename funktioniert ohne Umleitung (offensichtlichere Lösung).

4
EKons

Ich habe viele Threads gelesen, aber es ist nicht der kürzeste Weg.

Bitte benutze den Befehl:

>copy /b NUL empty_file.txt

3
suhao399

Das hat bei mir funktioniert,

echo > file.extension

Hier ist ein anderer Weg, den ich heute gefunden habe, Ideen aus anderen Antworten, aber es hat funktioniert

sometext > filename.extension

Z.B.

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

Dies würde eine Fehlermeldung in der Eingabeaufforderung anzeigen, dass

xyz ist weder ein interner noch ein externer Befehl, ein ausführbares Programm oder eine Batch-Datei.

Aber das Seltsame, was ich gefunden habe, war, dass die Datei im Verzeichnis erstellt wird, auch wenn der Befehl kein Windows-Standardbefehl ist.

3
Lucky

nter Windows Ich habe es versucht

echo off > fff1.txt

und es wurde eine Datei mit dem Namen fff1.txt mit einer Dateigröße von 0 KB erstellt

Ich habe keine anderen Befehle gefunden, die eine leere Datei erzeugen könnten.

Hinweis: Sie müssen sich in dem Verzeichnis befinden, in dem Sie die Datei erstellen möchten.

3
Omkar Agrawal

Noch ein anderer Weg:

copy nul 2>empty_file.txt
3
GadBro

Ich habe es gerade in Windows versucht

copy con file.txt

dann drücken Enter Taste und dann drücken Ctrl+ZEnter

Und es hat für mich funktioniert.

Für Ubuntu erstelle ich normalerweise eine Datei mit dem VI-Befehl

vi file.txt

Es wird die Datei öffnen und dann drücken ESC Geben Sie dann : wp ein und drücken Sie enter Schlüssel. Es wird eine neue Datei mit leeren Daten erstellt.

2
ARJUN KP

Zum Erstellen eines beliebigen Dateityps können Sie den folgenden Code verwenden

geben Sie nul> (Dateiname) ein. (Dateityp)

Z.B. Wenn Sie eine Textdatei erstellen möchten, dann

geben Sie nul> demo.txt ein

Wenn Sie eine Javascript-Datei erstellen möchten, dann

geben Sie nul> demo.js ein

2
Darshan Jain
  • erstelle eine bat Datei mit dem Inhalt echo '' > %1. (Benennen Sie die Datei als touch.bat)
  • fügen Sie den Ordner der PATH-Variablen hinzu.
  • sie können touch verwenden, um Dateien zu erstellen. (Beispiel: touch temp.txt erstellt die Datei temp.txt)

weitere Informationen finden Sie in this article.

2
Pranay Kumar

Versuche dies:

echo $null >> filename 

Siehe: superUser

2
shireef khatab

Heute habe ich einen neuen entdeckt :)

Dadurch wird der Titel des Befehlszeilenfensters geändert, es wird jedoch auch eine leere Datei erstellt.

title > file.txt
1
ninix

Hier ist noch ein anderer Weg:

rem/ > file.ext

Der Schrägstrich / ist obligatorisch. Ohne diesen wurde der Umleitungsteil von rem auskommentiert.

1
aschipfl

Führen Sie CMD im Administratormodus aus und geben Sie Folgendes ein:

NUL > file_name.extention

oder Sie geben dies ein

echo .> file_name.extention
1
Lekens
echo.|set /p=>file

echo. unterdrücke den "Befehl ECHO aktiviert"

|set /p= Zeilenumbruch verhindern (und Datei ist jetzt 0 Byte)

0
131

Als Benutzer von VIM unter Windows konnte ich in diesem Fragenthread keine Antwort finden.

Als Lösung von dieser Thread installieren Sie bitte zuerst gvim .
Vergessen Sie nicht, während der Installation die Option ".bat-Dateien für die Verwendung in der Befehlszeile erstellen" zu aktivieren (siehe unten).

enter image description here

Einige bat-Dateien wie vim.bat und gvim.bat werden unter C:\Windows installiert. Fügen Sie C:\Windows zum Systempfad hinzu, wenn dies nicht erfolgt ist.

Starten Sie die cmd.exe neu und geben Sie gvim empty_file.txt ein. Sie starten die gvim, um die leere Datei von Grund auf zu bearbeiten. Wenn Sie die Konsole "Eingabeaufforderung" nicht verlassen möchten, geben Sie stattdessen vim empty_file.txt ein.

Ich hoffe, diese Antwort kann denjenigen helfen, die VIM über die Windows-Eingabeaufforderung starten möchten, wenn sie eine leere Datei erstellen.

0
Gearon

Erstellen Sie zuerst Ihre Datei, damit sie existiert:

echo . > myfile.txt

Überschreiben Sie dann die erstellte Datei mit einer leeren Version, indem Sie den Befehl copy verwenden:

copy /y nul myfile.txt
0
Dowopfan