Archivo por lotes de Windows con comando TYPE


1

Tengo 10 archivos como abajo:

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

y entonces


Estoy tratando de hacer un TYPE comando como:

type file*.txt > OUTPUT.txt

esto funciona para generar el contenido del archivo solamente. Necesito salida para tener también el nombre de archivo para cada archivo.

mi output.txt el archivo 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"

findstr "^" "file*.txt"
JosefZ

Gracias @JosefZ. Esto fue tan simple y funciona exactamente como quiero.
superuser10105050

Respuestas:


1

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

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

Luego usa este comando:

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

1

Usa el siguiente comando de cmd ventana:

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

Si se utiliza en una secuencia de comandos por lotes, el doble por ciento inicia sesión for variables internas del bucle (es decir, %%G, %%H en lugar de %G, %H respectivamente):

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

Recursos (lectura obligatoria):


0

Puedes probar:

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

Esto producirá un archivo que se parece a:

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

los for /l El comando cuenta de 1 a 3 en incrementos. En general (start,increment,end).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.