1

У меня есть родительская папка (BIG_Folder), которая содержит много подпапок (folder1, folder2, folder3 ...), в каждой подпапке существует пакетный файл, он всегда один и тот же (x.bat).

Я хочу запустить все летучие мыши, рекурсивно из другой летучей мыши.

BIG_Folder (папка 1 (x.bat), папка 2 (x.bat), папка 3 (x.bat))

Папка1, папка2, папка3 не создаются, создаются предыдущей битой. По этой причине я стараюсь делать рекурсивно все подпапки, содержащиеся в BIG_Folder.

Прикрепленный код, как я копирую летучих мышей в папки.

for /D %%f in ("C:BIG_Folder\*") do copy "C:\3.bat" "%%f\" 

Любая помощь приветствуется

2 ответа2

1

Спасибо за быстрый ответ, прошу прощения за путаницу

Я постараюсь быть кратким. Цель состоит в том, чтобы упаковать видео и аудио в файл. Это означает, что в каждой папке, Папка 1, Папка 2, Папка 3, есть 3 файла, 1 видео (VIDEO01) и 2 аудио (AUDIO01) (AUDIO02). и после выполнения летучей мыши (3.BAT) стать одним файлом.

это точная инструкция по упаковке

bmxtranswrap -p -t op1a --ps-avcihead -o "OUT_SingleFile" %VIDEO01% %AUDIO01% %AUDIO02%   

И это полная инструкция 3.bat

   @echo off 

DIR *.mxf /b /o > clips.txt

for /F "tokens=*" %%X in (clips.txt) do call :variables "%%X" 
goto fin 

:variables 
set /a contador=contador + 1 
::
if "%contador%"=="1" set linea1=%~1 
if "%contador%"=="2" set linea2=%~1 
if "%contador%"=="3" set linea3=%~1 
if "%contador%"=="4" set linea4=%~1 
if "%contador%"=="5" set linea5=%~1 

goto:eof 

:fin 

echo %linea1% 
echo %linea2% 
echo %linea3% 
echo %linea4% 
echo %linea5% 

bmxtranswrap -p -t op1a --ps-avcihead -o "OUT_%linea1%_.mxf" %linea1%  %linea2% %linea3% %linea4% %linea5%    

pause

По этой причине летучая мышь должна быть в каждой папке. Каждая папка имеет одну и ту же летучую мышь (3.bat), но различное содержание видео и аудио. И что я хочу, чтобы выполнить все биты (3.bat) за раз.

Одна вещь, еще 1,2,3 папки создаются другим bat x.bat, который сканирует каталог и организует видео и аудио соответствующих символов.

    @echo off
FOR /R "C:\MATERIAL" %%a IN (*.mxf*) DO set ruta=%%a&set datos=%%~nxa&call :separar
pause
goto:eof
:separar
set copia=%datos:~0,4%
if not exist "C:\MATERIAL\CARPETAS\%copia%" MD "C:\MATERIAL\CARPETAS\%copia%"
set archivo=%datos%

if %archivo:~0,4% EQU %copia% copy "%ruta%" "C:\MATERIAL\CARPETAS\%copia%" 

echo %ruta%

goto:eof

call exe.bat

pause

Существует второй bat (2.bat), который 3.bat копирует в каждую отдельную папку, созданную x.bat

@echo off
for /D %%f in ("C:MATERIAL\CARPETAS\*") do copy "C:\3.bat" "%%f\"
pause

Любая помощь приветствуется

Спасибо за все

0

Выполнение пакетных сценариев так же просто (почти то же самое), что и копирование их туда в первую очередь:

for /d %%F in ("c:BIG_Folder\*") do call "%%F\3.bat"

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

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

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