Windows Batch-Programme

Windows Batch-Programme

Ich muss mehrere ASCII-Dateien zusammenführen und habe versucht, diese Batchdatei zu verwenden. Sie erstellt eine neue Datei, die alle Dateien zusammenführt und den Header aus allen Dateien entfernt.

@echo off

FOR /F "delims=*" %%i in (header.txt) do @echo %%i
FOR /F "skip=1 delims=*" %%i in (A1.DAT A2.DAT A3.DAT A4.DAT A5.DAT) do @echo %%i

Diese Batchdatei funktioniert, aber ich möchte Platzhalter wie *.dat verwenden, anstatt die einzelnen Dateinamen in der Batchdatei anzugeben. Kann mir jemand helfen, wie ich Platzhalter verwenden kann, anstatt einzelne Dateinamen einzugeben?

Antwort1

Versuchen Sie den nächsten Codeausschnitt:

@echo off
SETLOCAL EnableExtensions
FOR /F "delims=" %%i in (header.txt) do @echo %%i
FOR %%I in (*.dat) do @FOR /F "usebackq skip=1 delims=" %%i in ("%%~I") do @echo %%i

Verwenden Sie es beispielsweise wie folgt:>"1127756merged.txt" 1127756.bat

Hier

  • FOR %%I in (*.dat)Die Schleife gibt eine Liste aller .datDateien im aktuellen Verzeichnisordner zurück.
    • Diese Liste istdynamischd. h. lädt auch Dateien, die Sie während der Verarbeitung zum Ordner hinzufügen;
    • um einstatischListe, verwenden Sie FOR /F "delims=" %%I in ('dir /B *.dat')stattdessen;
  • verschachtelte %%iSchleife behandelt alle Dateien der Reihe nach;
  • Notiz delims=statt deines delims=*; (und überlege: vielleicht liege ich mit diesem Vorschlag falsch).

Ressourcen(Pflichtlektüre):

verwandte Informationen