86263
Goto Top

Per Batch (Text-)Datei ohne Text erzeugen

Hallo,
hier nur ein Tipp:
Wenn man eine leere (Text-)Datei per Batch oder cmd erzeugen will, muss man einfach nur schreiben:
echo. > Dateiname.txt

Hinweis: Wenn man
echo > Dateiname.txt
schreibt,bekommt man keine leere Datei, in ihr steht dann nämlich
ECHO ist eingeschaltet (ON).

Content-ID: 135275

Url: https://administrator.de/contentid/135275

Ausgedruckt am: 24.11.2024 um 02:11 Uhr

76109
76109 05.02.2010 um 14:06:37 Uhr
Goto Top
Hallo DGzRSBorkum!

Wobei ein
echo.>Test.Txt
nichts weiter als eine Leerzeile erzeugt, also mit CR und LF eine 2 Byte große Datei

In Deinem Beispiel:
echo. > Test.Txt
wird mit CR und LF und Leerzeichen eine 3 Byte große Datei erstellt

Gruß Dieter
Biber
Biber 05.02.2010 um 14:09:37 Uhr
Goto Top
Moin DGzRSBorkum,

nicht unrichtig, was du schreibst... aber die Kategorie "leere Textdatei" ist wegen der implizierten Doppeldeutigkeit/Widersprüchlichkeit doch noch mal zu klären.

Ja, du erzeugst mit deiner Methode in der Tat eine "leere Textdatei"...."leer", weil zwar kein Text, aber eine "Leerzeile" enthalten ist.
Und "Zeilen" sind natürlich ein typisches Merkmal von (unformatierten plain-)Textdateien im Windows-Kontext.

Doch dann hat diese "Leerdatei" eben doch 2 Byte bzw. eine Zeile.

Falls jemand aber eine "leere" Datei ohne Leerzeile haben möchte (Demo am CMD-Prompt, führendes ">" ist mein Prompt):
>echo.>leer1.txt
>copy nul leer2.txt
        1 Datei(en) kopiert.
>rem>leer3.txt

>dir leer*.txt
 Datenträger in Laufwerk D: ist Daten

05.02.10  13:56                 2 leer1.txt
05.02.10  13:56                 0 leer2.txt
ad leer1.txt) Der ECHO-Befehl hängt immer und ungefragt ein CRLF/Zeilenumbruch/ Hex(13)+Hex(10) mit an
ad leer2.txt) ein "copy NUL neuedatei" belässt es bei 0 Byte, allerdings kommt auch die Erfolgsmeldung "1 Datei kopiert", die unterdrückt werden müsste
ad leer3.txt) oft versucht im Internet, aber Bullshit: die Erzeugung von "nichts" durch das Verwerten der Rückgabe eines REM-Befehls.

Grüße
Biber
86263
86263 05.02.2010 um 14:30:26 Uhr
Goto Top
OK, ihr habt recht. face-smile Textdatei ohne Text hätte besser gepasst.
bastla
bastla 05.02.2010 um 18:24:49 Uhr
Goto Top
... und wenn das alles viel zu einfach war face-wink:
set/p=<nul>leer4.txt
Grüße
bastla
Biber
Biber 05.02.2010 um 18:38:33 Uhr
Goto Top
@bastla
Einen hab ich noch.
>echo FDP|find "Wirtschaftskompetenz">leer5.txt
>dir leer5.*
05.02.10  18:37                 0 leer5.txt

[Anmerkung: würde auch mit anderen Kombinationen funktionieren, aber so ist es einfacher zum Merken.]

Schönes Wochenende
Biber
77559
77559 06.02.2010 um 01:20:25 Uhr
Goto Top
Zitat von @Biber:
> >copy nul leer2.txt
>         1 Datei(en) kopiert.
> 

Hallo Biber,
Type NUL >LeerX.txt
wäre einfacher

Gruß
LotPings
TheEternalPhenom
TheEternalPhenom 10.02.2010 um 09:48:52 Uhr
Goto Top
Hallo

also Mensch ohne große Ahnung von Batchprogrammierungen muss ich jetzt einfach mal fragen, warum eine Batch zum erstellen einer Textdatei nutzen???

Rechtsklick -> Neu -> Text Document reicht doch völlig aus oder hab ich hier was missverstanden???
Biber
Biber 10.02.2010 um 13:44:41 Uhr
Goto Top
Moin duffman521,

Batches sind ja in der Regel dazu da, automatisiert, unbeaufsichtigt und ohne Benutzerinteraktion irgendeine Routineaufgabe abzuarbeiten.
Dabei kommt es hin und wieder vor, dass eine Textdatei, die im weiteren Programmlauf gefüllt wird, erst einmal "leer" angelegt werden muss.

Beispiel ist ein Batch, der das Vorhandensein von bestimmten Worten (z.b. "Success", "Error", ..) in einer ständig wachsenden Logdatei mit Find/Findstr prüfen und darauf reagieren soll.

Für diesen Batch (bzw. die Batchprogrammierung) wäre es natürlich am saubersten bzw. wartbarsten, wenn diese Kernfunktion "FINDE Suchwort in LOGDatei" nur zwei mögliche Ergebnisse liefern könnte, nämlich "Suchwort im Log gefunden" und "Suchwort im Log nicht gefunden".
Um den anfänglich möglichen dritten Zustand auszuschließen ("keine Ahnung, habe nicht mal das Log gefunden") wird die hier als Tipp beschriebene Mimik manchmal eingesetzt und eine leere Datei angelegt.

Nachteil der Rechtsklick->neue Textdatei-Mimik ist eben die Notwendigkeit der körperlichen Anwesenheit eines geneigten Anwenders, der da grad mal Lust zu hat, das zu tun.
Und das kann z.b. bei Batch-Sicherungsläufen, die jeden Freitag früh morgens um 03.30h automatisiert laufen nicht immer unterstellt werden.

Das ist der Hintergrund für diese vielleicht um die Ecke gedacht wirkenden Alternativen wie 'Suche nach "Vitaminen" in "Kantinenessen" und schreibe das Ergebnis in Datei Leerx.txt'.

Grüße
Biber
bastla
bastla 10.02.2010 um 17:37:55 Uhr
Goto Top
... außerdem reicht dann uU anstelle von Rechtsklick -> Neu -> Text Document auch ein Doppelklick (wo wir doch eh alle so wenig Zeit haben) ... face-wink

Grüße
bastla
TheEternalPhenom
TheEternalPhenom 10.02.2010 um 17:49:13 Uhr
Goto Top
Danke für die Erklärung. Jetzt leuchtet es mir ein. Soweit hatte ich nämlich gar nicht gedacht.
86263
86263 10.09.2010 um 12:28:01 Uhr
Goto Top
Ach ja, es gibt da ja auch noch
copy con
77559
77559 10.09.2010 um 12:36:51 Uhr
Goto Top
Nach sieben Monaten ein Nachzügler?

Hast du da jetzt solange dran überlegt? face-wink

Dann hat es sich aber nicht gelohnt, denn copy con erfordert eine Eingabe die durch STRG-Z oder F6 beendet werden muss.

Gruß
LotPings
86263
86263 10.09.2010 um 19:52:33 Uhr
Goto Top
Jetzt wo du es sagst ... war noch zu früh ^^
125224
125224 11.11.2015 um 23:20:28 Uhr
Goto Top
Hey bisschen spät aber für alle die es noch interessiert:

echo 2> leeredatei.txt

Ausgabe "ECHO is on." erscheint auf dem Bildschirm.
In die leeredatei.txt werden die Fehlermeldungen geschrieben, da keine Fehler auftreten bleibt die Datei leer.

Greetz
bastla
bastla 12.11.2015 aktualisiert um 00:32:54 Uhr
Goto Top
Hallo ckappz und willkommen im Forum!
Ausgabe "ECHO is on." erscheint auf dem Bildschirm.
Muss ja nicht sein - etwa:
2>leeredatei.txt echo>nul
Alternativ kannst Du außer 2 auch andere Channels (bis 9 verwenden) ...

Grüße
bastla
woiswas
woiswas 20.10.2016 um 19:45:17 Uhr
Goto Top
Der Schönheit wegen und weil auch ich es immer noch brauche (WIN10):
Mit:
cd.>leer.txt
wird ein leerer Dateieintrag erstellt ohne weitere Ausgaben.

Und wer aus einem vorhandenen Ordner alle Dateinamen als leeren Dateieintrag benötigt kann dies mit:
robocopy . test /create
erreichen. = erzeugt einen Unterordner test mit 0-Byte-Dateien aus dem aktuellen Ordner.