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.
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 einenul
Antwort an den Befehlset/p
weiter, wodurch die verwendete Variable unverändert bleibt. Wie beiset/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!
".
Versuche dies:
type NUL > 1.txt
dadurch wird definitiv eine leere Datei erstellt.
Hier ist ein anderer Weg:
cd. > filename
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.
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
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.
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.
call>file.txt
das ist der sauberste Weg, den ich kenne.
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;
}
cd > filename.cfg
funktionierte beim Erstellen einer Datei in C:/Programme, auf die Sie nicht direkt zugreifen können.
kopieren Sie mit SomeFile.txt Enter
Ctrl-ZEnter
Noch eine andere Methode, die eine Null-Byte-Datei erstellt:
break > "file.txt"
Verwenden Sie copy > your_file_name.extension
in der Eingabeaufforderung wie
P:\excecise> copy > Sample.txt
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.
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.
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
Sie könnten auch verwenden:
echo. 2>foo
Die Debug-Ausgabe für echo.
ist mit ziemlicher Sicherheit leer.
type nul>filename
erstellt eine neue leere Datei.
UPDATE: Auch copy nul filename
funktioniert ohne Umleitung (offensichtlichere Lösung).
Ich habe viele Threads gelesen, aber es ist nicht der kürzeste Weg.
Bitte benutze den Befehl:
>copy /b NUL empty_file.txt
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.
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.
Noch ein anderer Weg:
copy nul 2>empty_file.txt
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.
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
echo '' > %1
. (Benennen Sie die Datei als touch.bat)touch temp.txt
erstellt die Datei temp.txt)weitere Informationen finden Sie in this article.
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
Hier ist noch ein anderer Weg:
rem/ > file.ext
Der Schrägstrich /
ist obligatorisch. Ohne diesen wurde der Umleitungsteil von rem
auskommentiert.
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
echo.|set /p=>file
echo.
unterdrücke den "Befehl ECHO aktiviert"
|set /p=
Zeilenumbruch verhindern (und Datei ist jetzt 0 Byte)
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).
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.
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