Wie kann ich die erste Zeile aus einer Textdatei mit einer Windows-Batchdatei lesen? Da die Datei groß ist, möchte ich mich nur mit der ersten Zeile befassen.
batch-file
cmd
Jesse Vogt
quelle
quelle
Antworten:
Hier ist eine universelle Batch-Datei zum Drucken der obersten
n
Zeilen aus einer Datei wie dem GNU-head
Dienstprogramm anstelle einer einzelnen Zeile.Beispielsweise:
Leerzeilen werden derzeit nicht gezählt. Es unterliegt auch der Beschränkung der Zeilenlänge für Batchdateien von 8 KB.
quelle
;
, dem Standardzeichen FOR / F EOL, werden ebenfalls ignoriert . Wenn Sie nach 10 Zeilen fragen, werden die ersten 10 Zeilen gedruckt, die nicht leer sind und nicht mit beginnen;
.äh? imo das ist viel einfacher
quelle
echo %texte:~3%
Zum Beispiel werden die ersten drei Zeichen übersprungen. Dies ist nützlich, wenn Sie eine UTF-8-Datei mit Stückliste lesen.Äh ihr ...
quelle
findstr "^1:"
und erhalten Sie die Wärme und den Schutz von doppelten Anführungszeichen. Oder, wenn Sie Zitate wie mich verachten und gefährlich leben wollen, verwenden Siefindstr /b 1:
findstr ^^1
.set /p
Lösung ist für große Dateien weitaus effizienter.Sie könnten dies versuchen:
Bearbeiten Oder sagen Sie, Sie haben vier Datenspalten und möchten von der 5. Zeile bis zum Ende Folgendes:
quelle
"delims="
, um vollständige Ordnernamen zusammen mit Leerzeichen auszudrucken.Dank thetalkingwalnut mit Windows-Batch- Antwortbefehl (en) zum Lesen der ersten Zeile aus der Textdatei habe ich die folgende Lösung gefunden:
quelle
Etwas auf den Antworten anderer Leute aufbauen. Jetzt können Sie die Datei angeben, aus der Sie lesen möchten, und die Variable, in die das Ergebnis eingefügt werden soll:
Dies bedeutet, dass Sie das oben genannte wie folgt verwenden können (vorausgesetzt, Sie haben es getline.bat genannt).
quelle
Ein Liner, nützlich für die Standardumleitung mit ">":
quelle
Versuche dies
quelle
Das Problem mit den
EXIT /B
Lösungen, wenn sie realistischer in einer Batch-Datei als nur ein Teil davon sind, ist das folgende. Es erfolgt keine nachfolgende Verarbeitung innerhalb der Batch-Datei nach demEXIT /B
. Normalerweise gibt es bei Chargen viel mehr als nur eine begrenzte Aufgabe.Um diesem Problem entgegenzuwirken:
(Die sogenannten Giftcharaktere werden jedoch immer noch ein Problem sein.)
Weitere Informationen zum Abrufen einer bestimmten Zeile mit Batch-Befehlen:
[Hinzugefügt am 28.08.2012] Man kann auch haben:
quelle
Um Ciclo eine Datei (
file1.txt
,file1[1].txt
,file1[2].txt
, usw.):Und es läuft.
quelle
set /p
fragt durch eine Eingabeaufforderung;<
Bei der Dateiumleitung wird der Inhalt der Datei jedoch sofort an der Eingabeaufforderung abgerufen. und da die erste Zeile mit einem Zeilenende endet, hört die Eingabeaufforderung an diesem Punkt auf zu lesen und speichert somit nur die erste Zeile in der Variablen.Beachten Sie, dass die Ansätze für Batchdateien auf das Zeilenlimit für den DOS-Befehlsprozessor beschränkt sind - siehe Was ist das Limit für die Befehlszeilenlänge ? .
Wenn Sie also versuchen, eine Datei mit mehr als 8192 Zeichen zu verarbeiten, überspringt das Skript diese einfach, da der Wert nicht gespeichert werden kann.
quelle
Ein anderer Weg
quelle
Hier ist eine Problemumgehung mit
powershell
:(Sie können auch leicht eine Reihe von Zeilen mit lesen
powershell (Get-Content file.txt)[0..3]
)Wenn Sie eine Variable in einem Batch-Skript als erste Zeile festlegen müssen,
file.txt
können Sie Folgendes verwenden:quelle
for /f "delims=" %a in (downing.txt) do echo %a & pause>nul
Druckt die erste Zeile und wartet darauf, dass der Benutzer eine Taste drückt, um die nächste Zeile zu drucken. Drücken Sie nach dem Drucken der erforderlichen Zeilen Strg + C, um den Vorgang zu beenden.
@ Ross Presser: Diese Methode druckt nur Zeilen, keine Zeilennummern.
quelle