como concatenar arquivos dentro de cada subdiretório usando o prompt de comando do windows

0

Sou novato, estudante de graduação e frustrado !! Eu tenho toneladas de diretórios contendo subdiretórios e cada subdiretório contém um monte de arquivos .irf (estes são um arquivo do tipo DVR).

Estou tentando usar o prompt de comando para fazer com que cada subdiretório contenha um arquivo .irf concatenado para os .irf nesse subdiretório. E, idealmente, o novo arquivo teria o nome do subdiretório.

Eu não posso concatená-los sem problemas, entrando em cada subpasta, um por um:

copy /b *.irf concat.irf

Para fazer isso funcionar para cada subdiretório, tentei usar o comando for e coloquei o comando copy em um arquivo de lote (copyIRF.bat)

for /d /r %i in (*.*) do call copyIRF.bat %i )

Isso coloca um arquivo concatenado chamado concat.irf no diretório pai que é os arquivos combinados do subdiretório # 1.

Mas quando ele concatia os arquivos no segundo diretório, ele os anexa ao mesmo arquivo concat.irf na pasta pai, em vez de colocar os arquivos resultantes em seus respectivos subdiretórios.

O que eu quero é:

Directory
  Subdir1
    *.irf
    *.irf
    *.irf...etc.
    Subdir1concat.irf
  Subdir2
    *.irf
    *.irf
    *.irf ...etc..
    Subdir2concat.irf

Eu realmente agradeço qualquer ajuda !!

(eu uso o Win 7 64bit pro)

    
por Amanda 30.06.2015 / 01:47

1 resposta

0

O próximo comando de loop pode ajudar:

for /F "delims=" %i in ('dir /B /S /AD') do @call copyIRF.bat "%i"

se o seu copyIRF.bat for definido da seguinte forma:

==>type copyIRF.bat
@echo OFF
pushd "%~1"
if exist *.irf (
    del "%~nx1concat.irf"
    copy *.irf "%~nx1concat.irf"
    echo debug copy *.irf "%~nx1concat.irf"
)
popd
exit /B

Recursos (leitura obrigatória):

por 30.06.2015 / 09:46