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 TYPE
comando 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.txt
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"
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 cmd
la 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 for
las 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):
- (referencia de comando)Un índice AZ de la línea de comando CMD de Windows
- (particularidades adicionales)Sintaxis de la línea de comandos de Windows CMD Shell
- (
%G
etc. página especial)Argumentos de la línea de comando (parámetros) - (
>
página especial)Redirección
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 /l
comando cuenta del 1 al 3 en incrementos. En general (start,increment,end)
.