Windows-Batchdatei mit TYPE-Befehl

Windows-Batchdatei mit TYPE-Befehl

Ich habe 10 Dateien wie unten:

  • file1.txt(Dateiinhalt = "Ich enthalte Text für Datei1")
  • file2.txt(Dateiinhalt = "Ich enthalte Text für Datei2")
  • file3.txt(Dateiinhalt = "Ich enthalte Text für Datei3")

und so


Ich versuche, einen TYPEBefehl wie diesen auszuführen:

type file*.txt > OUTPUT.txt

Dies funktioniert nur, um den Dateiinhalt auszugeben. Ich brauche für die Ausgabe auch einen Dateinamen für jede Datei.

meine output.txtDatei sollte so aussehen:

file1.txt = "i contain text for file1"
file2.txt = "i contain text for file2"
file3.txt = "i contain text for file3"

Antwort1

Erstellen Sie eine Batchdatei namens proc.bat, die Folgendes enthält:

echo %1=>>output.txt
type %1>>output.txt

Verwenden Sie dann diesen Befehl:

for %v in (file*.txt) do proc %v

Antwort2

Verwenden Sie den nächsten Befehl aus cmddem Fenster:

>output.txt (for /F "tokens=1* delims=:" %G in ('findstr "^" "file*.txt"') do @echo %G = "%H")

Bei Verwendung in einem Batch-Skript verdoppeln Sie die Prozentzeichen in forden inneren Variablen der Schleife (also %%G, %%Hanstelle von %G, %H):

@echo off
>output.txt (for /F "tokens=1* delims=:" %%G in ('findstr "^" "file*.txt"') do echo %%G = "%%H")

Ressourcen(Pflichtlektüre):

Antwort3

Du kannst es versuchen:

for /l %f in (1,1,3) do echo|set /p="File %f = " >> output.txt & type file%f.txt >> output.txt

Das Ergebnis ist eine Datei, die wie folgt aussieht:

File 1 = Text in file1
File 2 = Text in file2
File 3 = Text in file3

Der for /lBefehl zählt in Schritten von 1 bis 3. Im Allgemeinen (start,increment,end).

verwandte Informationen