
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.dat
Dateien 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
%%i
Schleife behandelt alle Dateien der Reihe nach; - Notiz
delims=
statt deinesdelims=*
; (und überlege: vielleicht liege ich mit diesem Vorschlag falsch).
Ressourcen(Pflichtlektüre):
- (Befehlsreferenz)Ein AZ-Index der Windows CMD-Befehlszeile
- (hilfreiche Besonderheiten)Befehlszeilensyntax der Windows CMD-Shell
- (
%~I
usw. Sonderseite)Befehlszeilenargumente (Parameter) - (Sonderseite)EnableDelayedExpansion
- (
>>
,>
usw. Spezialseite)Umleitung