Я новичок, аспирант и разочарован !! У меня есть тонны каталогов, содержащих подкаталоги, и каждый подкаталог содержит кучу файлов .irf (это файлы типа DVR).

Я пытаюсь использовать командную строку, чтобы каждый подкаталог содержал объединенный файл .irf для .irf в этом подкаталоге. И в идеале новый файл должен иметь имя подкаталога.

Я могу объединить их без проблем, зайдя в каждую подпапку одна за другой:

copy /b *.irf concat.irf

Чтобы заставить это работать для каждого подкаталога, я пытался использовать команду for, и я поместил команду copy в командный файл (copyIRF.bat)

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

Это помещает объединенный файл с именем concat.irf в родительский каталог, который представляет собой объединенные файлы из подкаталога # 1.

Но затем, когда он объединяет файлы во втором каталоге, он добавляет их в тот же файл concat.irf в родительской папке, а не помещает полученные файлы в соответствующие подкаталоги.

Что я хочу это:

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

Я действительно очень ценю любую помощь !!

(Я использую Win 7 64bit pro)

1 ответ1

0

Следующая команда цикла может помочь:

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

если ваш copyIRF.bat определен следующим образом:

==>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

Ресурсы (требуется чтение):

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .