
Tengo que fusionar un conjunto de archivos ASCII e intenté usar este archivo por lotes, este crea un archivo nuevo que combina todos los archivos y elimina el encabezado de cada uno de los archivos.
@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
Estos archivos por lotes funcionan, pero quiero usar comodines como *.dat en lugar de proporcionar los nombres de cada archivo en el archivo por lotes. ¿Alguien podría ayudarme sobre cómo utilizar comodines en lugar de escribir nombres de archivos individuales?
Respuesta1
Pruebe el siguiente fragmento de código:
@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
Úselo, por ejemplo, de la siguiente manera:>"1127756merged.txt" 1127756.bat
Aquí
FOR %%I in (*.dat)
el bucle devuelve la lista de todos.dat
los archivos en la carpeta del directorio actual;- esta lista esdinámicaes decir, carga incluso los archivos que agregas a la carpeta durante el procesamiento;
- conseguir unestáticolista, use
FOR /F "delims=" %%I in ('dir /B *.dat')
en su lugar;
- el bucle anidado
%%i
trata todos los archivos en secuencia; - nota
delims=
en lugar de tudelims=*
; (y piense: tal vez me equivoque con esta sugerencia).
Recursos(lectura obligatoria):
- (referencia de comando)Un índice AZ de la línea de comando CMD de Windows
- (particularidades útiles)Sintaxis de la línea de comandos de Windows CMD Shell
- (
%~I
etc. página especial)Argumentos de la línea de comando (parámetros) - (página especial)Habilitar expansión retrasada
- (
>>
,>
etc. página especial)Redirección