Archivo por lotes de Windows con comando TYPE

Archivo por lotes de Windows con comando TYPE

Tengo 10 archivos como a continuación:

  • file1.txt(contenido del archivo = "contengo texto para el archivo1")
  • file2.txt(contenido del archivo = "contengo texto para el archivo2")
  • file3.txt(contenido del archivo = "contengo texto para el archivo3")

y entonces


Estoy intentando hacer un TYPEcomando como:

type file*.txt > OUTPUT.txt

esto funciona para generar solo el contenido del archivo. Necesito que la salida también tenga un nombre de archivo para cada archivo.

mi output.txtarchivo debería verse así:

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

Respuesta1

Cree un archivo por lotes llamado proc.bat que contenga:

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

Luego use este comando:

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

Respuesta2

Utilice el siguiente comando desde cmdla ventana:

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

Si se usa en un script por lotes, doble los signos de porcentaje en forlas variables internas del bucle (es decir %%G, %%Hen lugar de %G, %Hrespectivamente):

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

Recursos(lectura obligatoria):

Respuesta3

Puedes probar:

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

Esto generará un archivo similar a:

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

El for /lcomando cuenta del 1 al 3 en incrementos. En general (start,increment,end).

información relacionada