Programas em lote do Windows

Programas em lote do Windows

Tenho que mesclar um conjunto de arquivos ASCII e tentei usar esse arquivo em lote, este cria um novo arquivo que combina todos os arquivos e remove o cabeçalho de cada um dos arquivos.

@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

esses arquivos em lote funcionam, mas quero usar caracteres curinga como *.dat em vez de fornecer nomes de cada arquivo no arquivo em lote. Alguém poderia me ajudar, como usar curinga em vez de digitar nomes de arquivos individuais?

Responder1

Tente o próximo trecho 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

Use-o, por exemplo, da seguinte forma:>"1127756merged.txt" 1127756.bat

Aqui

  • FOR %%I in (*.dat)loop retorna lista de todos .datos arquivos na pasta do diretório atual;
    • esta lista édinâmicoou seja, carrega até mesmo arquivos que você adiciona à pasta durante o processamento;
    • para obter umestáticolista, use FOR /F "delims=" %%I in ('dir /B *.dat')em vez disso;
  • o loop aninhado %%itrata todos os arquivos em sequência;
  • note delims=em vez do seu delims=*; (e pense: talvez eu esteja errado com esta sugestão).

Recursos(leitura obrigatória):

informação relacionada