
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.dat
os 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
%%i
trata todos os arquivos em sequência; - note
delims=
em vez do seudelims=*
; (e pense: talvez eu esteja errado com esta sugestão).
Recursos(leitura obrigatória):
- (referência de comando)Um índice AZ da linha de comando do Windows CMD
- (particularidades úteis)Sintaxe de linha de comando do shell CMD do Windows
- (
%~I
etc. página especial)Argumentos de linha de comando (parâmetros) - (página especial)Habilitar Expansão Atrasada
- (
>>
,>
etc. página especial)Redirecionamento