Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Операция с именами файлов (http://forum.oszone.net/showthread.php?t=337969)

rider42 29-11-2018 22:02 2843347

Операция с именами файлов
 
Приветствие. Есть небольшой bat'ник с инструкциями, работающими с именами файлов стандарта 11, 12, 13, 14, .... Делалось это для унификации обработки файлов последовательно двумя программа:

Код:

@echp off
for /L %%a in (11,1,99) do (
[операция первой программы]

[операция второй программы]
)

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

Можно ли как-нибудь в bat'ник это прописать для автоматизации?

Заранее спасибо.

Iska 29-11-2018 22:10 2843350

rider42, можно. Если опишете — по какому принципу Вы определяете соответствие между неким списком исходных имён файлов и списком конечных имён.

rider42 29-11-2018 22:20 2843351

Цитата:

Цитата Iska
rider42, можно. Если опишете — по какому принципу Вы определяете соответствие между неким списком исходных имён файлов и списком конечных имён. »

Соответствие прямое. То есть допустим в исходной папке такой список файлов:
Код:

Adam.Ruins.Everything.S02E23.720p.TRU.WEBRip.AAC2.0.x264-BTN.mp4
Adam.Ruins.Everything.S04E01.720p.ColdFilm.mkv.mp4
Arrow.S07E07.1080p.rus.LostFilm.TV.mkv.mp4
Arrow.S07E07.The.Slabside.Redemption.1080p.AMZN.WEBRip.DDP5.1.x264-CasStudio.mp4
DCs.Legends.of.Tomorrow.S04E06.1080p.rus.LostFilm.TV.mkv.mp4
DCs.Legends.of.Tomorrow.S04E06.Tender.is.the.Nate.1080p.AMZN.WEBRip.DDP5.1.x264-QOQ.mp4
Supergirl.S04E07.1080p.rus.LostFilm.TV.mkv.mp4
Supergirl.S04E07.Rather.the.Fallen.Angel.1080p.AMZN.WEBRip.DDP5.1.x264-QOQ.mp4
The.Flash.2014.S05E07.O.Come.All.Ye.Thankful.1080p.AMZN.WEBRip.DDP5.1.x264-NTb.mp4

После переименования получаем последовательный набор файлов:
Код:

11.mp4
12.mp4
13.mp4
14.mp4
15.mp4
16.mp4
17.mp4
18.mp4
19.mp4

После того как отработал мой bat'ник в другой папке создаётся такой набор файлов:
Код:

11.mkv
12.mkv
13.mkv
14.mkv
15.mkv
16.mkv
17.mkv
18.mkv
19.mkv

Ну и под конец надо переименовать этот список файлов в исходные имена с поправкой на новое расширение:
Код:

Adam.Ruins.Everything.S02E23.720p.TRU.WEBRip.AAC2.0.x264-BTN.mkv
Adam.Ruins.Everything.S04E01.720p.ColdFilm.mkv.mkv
Arrow.S07E07.1080p.rus.LostFilm.TV.mkv.mkv
Arrow.S07E07.The.Slabside.Redemption.1080p.AMZN.WEBRip.DDP5.1.x264-CasStudio.mkv
DCs.Legends.of.Tomorrow.S04E06.1080p.rus.LostFilm.TV.mkv.mkv
DCs.Legends.of.Tomorrow.S04E06.Tender.is.the.Nate.1080p.AMZN.WEBRip.DDP5.1.x264-QOQ.mkv
Supergirl.S04E07.1080p.rus.LostFilm.TV.mkv.mkv
Supergirl.S04E07.Rather.the.Fallen.Angel.1080p.AMZN.WEBRip.DDP5.1.x264-QOQ.mkv
The.Flash.2014.S05E07.O.Come.All.Ye.Thankful.1080p.AMZN.WEBRip.DDP5.1.x264-NTb.mkv

Ну и если я описал всё сумбурно поясню - исходные имена могут быть какими угодно. В том числе и содержать кириллицу.

Busla 29-11-2018 22:28 2843352

rider42, вполне возможно, что первая и/или вторая программы не очень дружат с произвольными именами файлов
либо синтаксис масок нетривиальный, и проще переименовать файл, чем экранировать возможные коллизии

rider42 29-11-2018 22:34 2843355

Цитата:

Цитата Busla
rider42, вполне возможно, что первая и/или вторая программы не очень дружат с произвольными именами файлов
либо синтаксис масок нетривиальный, и проще переименовать файл, чем экранировать возможные коллизии »

Так я из-за этого и переименовываю исходные файлы в цифровые имена, чтобы программы нормально обрабатывали такие файлы. Проблема как раз и состоит в том, чтобы после того как две программы отработали файлы с цифровыми именами вернуть им их изначальные имена. Ещё раз поясню - программы обрабатывают файлы с именами 11, 12, 13, 14, ...

Iska 29-11-2018 23:47 2843360

Цитата:

Цитата rider42
То есть допустим в исходной папке такой список файлов: »

Будем считать, что это означает «имена файлов, упорядоченные по имени в лексикографическом порядке».

Цитата:

Цитата rider42
Проблема как раз и состоит в том, чтобы после того как две программы отработали файлы с цифровыми именами вернуть им их изначальные имена. »

Вообще-то никакой проблемы нет. Просто создаёте по одной жёсткой ссылке на файл (для простоты — в отдельном каталоге того же раздела), пользуете для обработки, затем удаляете. Например:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=C:\Мои проекты\0222\Source
set sDestFolder=C:\Мои проекты\0222\Destination
set /a iCount = 10

2>nul pushd "%sSourceFolder%" && (
        for /f "usebackq delims=" %%i in (
                `2^>nul dir /b /a:-d /o:n "*.*"`
        ) do (
                set /a iCount += 1
                mklink /h "%sDestFolder%\!iCount!%%~xi" "%%~fi"
        )
        popd

        rem MyProgramm1.exe params ...
        pause

        rem MyProgramm2.exe params ...
        pause

        del /f /q "%sDestFolder%\*.*"

) || (
        echo Can't find source folder [%sSourceFolder%].
        exit /b 1
)

endlocal
exit /b 0

Всё в одном флаконе.

rider42, а что за программы?

megaloman 30-11-2018 00:18 2843364

rider42,
Вот вариант. Обработанные файлы перемещаем в архивный каталог, поэтому, если файлов в исходной папке >89, батник можно запустить несколько раз и обрабатывать следующие файлы.
Код:

@Echo Off
cls
        Set "BoxIn=Z:\Soft_In"
        Set "BoxArc=Z:\Soft_Arc"
        Set "ExtIn=mp4"

        Set "BoxOut=Z:\Soft_Out"
        Set "ExtOut=mkv"
       
        Set /A Nmax=99

        If Not Exist "%BoxOut%" Md "%BoxOut%"
        If Not Exist "%BoxArc%" Md "%BoxArc%"

        Set /A NNN=10
        FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\*.%ExtIn%" /b /a:-d /O:D`) DO Call :MassIn "%%~nf"
        FOR /L %%i IN (11,1,%NNN%) DO (
                Call Ren "%%BoxIn%%\%%@@1_%%i%%.%%ExtIn%%" "%%@@2_%%i%%.%%ExtIn%%"

rem Обработка программами
                Call Copy "%%BoxIn%%\%%@@2_%%i%%.%%ExtIn%%" "%%BoxOut%%\%%@@2_%%i%%.%%ExtOut%%" >nul
                Call Echo "%%BoxIn%%\%%@@1_%%i%%.%%ExtIn%%"
                Call Echo "%%BoxIn%%\%%@@2_%%i%%.%%ExtIn%%"
                Echo:
rem ---------------------

rem                Call Ren "%%BoxIn%%\%%@@2_%%i%%.%%ExtIn%%" "%%@@1_%%i%%.%%ExtIn%%"
                Call Move /Y "%%BoxIn%%\%%@@2_%%i%%.%%ExtIn%%" "%%BoxArc%%\%%@@1_%%i%%.%%ExtIn%%" >nul
                Call Ren "%%BoxOut%%\%%@@2_%%i%%.%%ExtOut%%" "%%@@1_%%i%%.%%ExtOut%%"

        )
pause
GoTo :Eof

:MassIn
        If %NNN% EQU %Nmax% Exit /B 1
        Set /A NNN+=1
        Set "@@1_%NNN%=%~1"
        Set "@@2_%NNN%=%NNN%"
GoTo :Eof

То, что отмечено красным - имитация Вашей обработки -
Цитата:

Цитата rider42
в другой папке создаётся такой набор файлов: ... под конец надо переименовать этот список файлов в исходные имена с поправкой на новое расширение »

В архив перемещаем исходные файлы с исходными именами
Вообще-то сначала переименовывать все файлы, а потом их обрабатывать - плохая идея. Всё равно Вы обрабатываете файлы по одному. Можно переименовывать последовательно каждый файл в одно и то же имя (например, 11), а затем после обработки восстанавливать старое имя со старым (в исходной) и новым расширениями (в выходной) папках
Код:

@Echo Off
cls
        Set "BoxIn=Z:\Soft_In"
        Set "ExtIn=mp4"

        Set "BoxOut=Z:\Soft_Out"
        Set "ExtOut=mkv"
       
        If Not Exist "%BoxOut%" Md "%BoxOut%"

        Set /A NNN=11
        FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\*.%ExtIn%" /b /a:-d /O:D`) DO (
                Ren "%BoxIn%\%%f" "%NNN%.%ExtIn%"

rem Обработка программами
                Echo "%BoxIn%\%%f"
                Echo "%BoxIn%\%NNN%.%ExtIn%"
                Echo:
                Copy "%BoxIn%\%NNN%.%ExtIn%" "%BoxOut%\%NNN%.%ExtOut%" >nul
rem ---------------------

                Ren "%BoxIn%\%NNN%.%ExtIn%" "%%f"
                Ren "%BoxOut%\%NNN%.%ExtOut%" "%%~nf.%ExtOut%"
        )
pause
GoTo :Eof


rider42 30-11-2018 20:46 2843477

Спасибо всем откликнувшимся.

Цитата:

Цитата megaloman
Вообще-то сначала переименовывать все файлы, а потом их обрабатывать - плохая идея. Всё равно Вы обрабатываете файлы по одному. Можно переименовывать последовательно каждый файл в одно и то же имя (например, 11), а затем после обработки восстанавливать старое имя со старым (в исходной) и новым расширениями (в выходной) папках »

Меня этот способ больше устраивает. Вот только складывается такое ощущение, что в итоге в итоговой папке оказывается всё тот же исходный mp4 с просто переименованным расширением в mkv. По-крайней мере размер совпадает до байта. И кажется происходит это уже после обработки файла программами. Такое ощущение, что исходный файл с измененным расширением заменяет собой обработанный файл.

Сам код вышел такой:
Скрытый текст
Код:

@Echo Off
cls
        Set "BoxIn=d:\Download\Video\"
        Set "ExtIn=mp4"

        Set "BoxOut=d:\Download\!Vid2CHG\"
        Set "ExtOut=mkv"
       
        If Not Exist "%BoxOut%" Md "%BoxOut%"

        Set /A NNN=11
        FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\*.%ExtIn%" /b /a:-d /O:D`) DO (
                Ren "%BoxIn%\%%f" "%NNN%.%ExtIn%"

rem
echo MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr  --vbv-len=500 >> "D:\Convert\YT_ch_LVL\11.meta"
echo V_MPEG4/ISO/AVC, "D:\Download\Video\11.mp4", level=4.1, insertSEI, contSPS, ar=As source, track=1, lang=und >> "D:\Convert\YT_ch_LVL\11.meta"
echo #A_AAC, "D:\Download\Video\11.mp4", track=2, lang=eng >> "D:\Convert\YT_ch_LVL\11.meta"

"c:\Soft\!Video\tsMuxeR_2.6.12\tsMuxeR.exe" "D:\Convert\YT_ch_LVL\11.meta" "D:\Convert\YT_ch_LVL\11.ts"

"C:/Soft/!Video/MKVtoolnix-28.2.0\mkvmerge.exe" --ui-language ru --output ^"D:\Download\!Vid2CHG\11.mkv^" --language 0:rus ^"^(^" ^"D:\Convert\YT_ch_LVL\11.ts^" ^"^)^" --no-video --language 1:rus --default-track 1:yes --forced-track 1:yes ^"^(^" ^"D:\Download\Video\11.mp4^" ^"^)^" --track-order 0:0,1:1

del /Q "D:\Convert\YT_ch_LVL\11.meta"
del /Q "D:\Convert\YT_ch_LVL\11.ts"

                Echo "%BoxIn%\%%f"
                Echo "%BoxIn%\%NNN%.%ExtIn%"
                Echo:
                Copy "%BoxIn%\%NNN%.%ExtIn%" "%BoxOut%\%NNN%.%ExtOut%" >nul
rem ---------------------

                Ren "%BoxIn%\%NNN%.%ExtIn%" "%%f"
                Ren "%BoxOut%\%NNN%.%ExtOut%" "%%~nf.%ExtOut%"
        )
pause
GoTo :Eof


megaloman 30-11-2018 21:17 2843480

rider42,
Цитата:

То, что отмечено красным - имитация Вашей обработки -
убейте строки, отмеченные красным цветом, они имитация ваших программ, они тупо копируют Ваши файлы с другим расширением. Как иначе я мог тестировать скрипт? Поставьте Ваши программы обработки вместо красных строк.

rider42 30-11-2018 21:27 2843482

Цитата:

Цитата megaloman
убейте строки, отмеченные красным цветом, они имитация ваших программ, они тупо копируют Ваши файлы с другим расширением. Как иначе я мог тестировать скримт? Поставьте Ваши программы обработки вместо красных строк. »

Понял. Спасибо. Теперь работает, только если я правильно понял есть проблема с маленькими файлами. Скрипт не успевает их обработать. Из 14 обработаны только 7.

Вот мой код
Скрытый текст
Код:

@Echo Off
cls
        Set "BoxIn=D:\Download\Video\"
        Set "ExtIn=mp4"

        Set "BoxOut=D:\Download\!Vid2CHG\"
        Set "ExtOut=mkv"
       
        If Not Exist "%BoxOut%" Md "%BoxOut%"

        Set /A NNN=11
        FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\*.%ExtIn%" /b /a:-d /O:D`) DO (
                Ren "%BoxIn%\%%f" "%NNN%.%ExtIn%"

echo MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr  --vbv-len=500 >> "D:\Convert\YT_ch_LVL\11.meta"
echo V_MPEG4/ISO/AVC, "D:\Download\Video\11.mp4", level=4.1, insertSEI, contSPS, ar=As source, track=1, lang=und >> "D:\Convert\YT_ch_LVL\11.meta"
echo #A_AAC, "D:\Download\Video\11.mp4", track=2, lang=eng >> "D:\Convert\YT_ch_LVL\11.meta"

"c:\Soft\!Video\tsMuxeR_2.6.12\tsMuxeR.exe" "D:\Convert\YT_ch_LVL\11.meta" "D:\Convert\YT_ch_LVL\11.ts"

"C:/Soft/!Video/MKVtoolnix-28.2.0\mkvmerge.exe" --ui-language ru --output ^"D:\Download\!Vid2CHG\11.mkv^" --language 0:rus ^"^(^" ^"D:\Convert\YT_ch_LVL\11.ts^" ^"^)^" --no-video --language 1:rus --default-track 1:yes --forced-track 1:yes ^"^(^" ^"D:\Download\Video\11.mp4^" ^"^)^" --track-order 0:0,1:1

del /Q "D:\Convert\YT_ch_LVL\11.meta"
del /Q "D:\Convert\YT_ch_LVL\11.ts"

                Ren "%BoxIn%\%NNN%.%ExtIn%" "%%f"
                Ren "%BoxOut%\%NNN%.%ExtOut%" "%%~nf.%ExtOut%"
        )
pause
GoTo :Eof



А вот лог с ошибками:
Скрытый текст
Код:

mkvmerge v28.2.0 ('The Awakening') 64-bit
'D:\Convert\YT_ch_LVL\11.ts': Применяется разделение для формата 'Транспортный п
оток MPEG'.
'D:\Download\Video\11.mp4': Применяется разделение для формата 'QuickTime/MP4'.
'D:\Convert\YT_ch_LVL\11.ts' дорожка 0: Применяется модуль вывода для формата 'A
VC/h.264 (неструктурированный)'.
'D:\Download\Video\11.mp4' дорожка 1: Применяется модуль вывода для формата 'AAC
'.
Файл 'D:\Download\!Vid2CHG\11.mkv' открыт для записи.
'D:\Convert\YT_ch_LVL\11.ts' дорожка 0: Данные о соотношении сторон изображения
извлечены из видеоданных MPEG-4 layer 10 (AVC), установлены размеры изображения
1920/1080.
Обработано: 100%
Пишутся записи cue (индекс)...
Слияние 0 секунд.

d:\Convert\YT_ch_LVL>(
Ren "D:\Download\Video\\Концепт арты Войны бесконечности, которые не попали в фи
льм.mp4" "11.mp4"
 echo MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr  --vbv-len=500  1>>"D:\
Convert\YT_ch_LVL\11.meta"
 echo V_MPEG4/ISO/AVC, "D:\Download\Video\11.mp4", level=4.1, insertSEI, contSPS
, ar=As source, track=1, lang=und  1>>"D:\Convert\YT_ch_LVL\11.meta"
 echo #A_AAC, "D:\Download\Video\11.mp4", track=2, lang=eng  1>>"D:\Convert\YT_c
h_LVL\11.meta"
 "c:\Soft\!Video\tsMuxeR_2.6.12\tsMuxeR.exe" "D:\Convert\YT_ch_LVL\11.meta" "D:\
Convert\YT_ch_LVL\11.ts"
 "C:/Soft/!Video/MKVtoolnix-28.2.0\mkvmerge.exe" --ui-language ru --output "D:\D
ownload\!Vid2CHG\11.mkv" --language 0:rus "(" "D:\Convert\YT_ch_LVL\11.ts" ")" -
-no-video --language 1:rus --default-track 1:yes --forced-track 1:yes "(" "D:\Do
wnload\Video\11.mp4" ")" --track-order 0:0,1:1
 del /Q "D:\Convert\YT_ch_LVL\11.meta"
 del /Q "D:\Convert\YT_ch_LVL\11.ts"
 Ren "D:\Download\Video\\11.mp4" "Концепт арты Войны бесконечности, которые не п
опали в фильм.mp4"
 Ren "D:\Download\!Vid2CHG\\11.mkv" "Концепт арты Войны бесконечности, которые н
е попали в фильм.mkv"
)
Network Optix tsMuxeR.  Version 2.6.12. www.networkoptix.com
Decoding H264 stream (track 1): Profile: High@4.0  Resolution: 1920:1080p  Frame
 rate: 29.97
Change H264 level from 4 to 4.1
H.264 muxing fps is not set. Get fps from stream. Value: 29.97
0.1% complete
H264 bitstream changed: insert nal unit delimiters
H264 bitstream changed: insert pict timing and buffering period SEI units
H264 bitstream changed: insert SPS/PPS units
Processed 9608 video frames
99.7% complete
Flushing write buffer
Mux successful complete
Muxing time: 1 sec
mkvmerge v28.2.0 ('The Awakening') 64-bit
'D:\Convert\YT_ch_LVL\11.ts': Применяется разделение для формата 'Транспортный п
оток MPEG'.
'D:\Download\Video\11.mp4': Применяется разделение для формата 'QuickTime/MP4'.
'D:\Convert\YT_ch_LVL\11.ts' дорожка 0: Применяется модуль вывода для формата 'A
VC/h.264 (неструктурированный)'.
'D:\Download\Video\11.mp4' дорожка 1: Применяется модуль вывода для формата 'AAC
'.
Файл 'D:\Download\!Vid2CHG\11.mkv' открыт для записи.
'D:\Convert\YT_ch_LVL\11.ts' дорожка 0: Данные о соотношении сторон изображения
извлечены из видеоданных MPEG-4 layer 10 (AVC), установлены размеры изображения
1920/1080.
Обработано: 100%
Пишутся записи cue (индекс)...
Слияние 1 секунда.

d:\Convert\YT_ch_LVL>(
Ren "D:\Download\Video\\Ковёр-самолёт - Русский трейлер (2019).mp4" "11.mp4"
 echo MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr  --vbv-len=500  1>>"D:\
Convert\YT_ch_LVL\11.meta"
 echo V_MPEG4/ISO/AVC, "D:\Download\Video\11.mp4", level=4.1, insertSEI, contSPS
, ar=As source, track=1, lang=und  1>>"D:\Convert\YT_ch_LVL\11.meta"
 echo #A_AAC, "D:\Download\Video\11.mp4", track=2, lang=eng  1>>"D:\Convert\YT_c
h_LVL\11.meta"
 "c:\Soft\!Video\tsMuxeR_2.6.12\tsMuxeR.exe" "D:\Convert\YT_ch_LVL\11.meta" "D:\
Convert\YT_ch_LVL\11.ts"
 "C:/Soft/!Video/MKVtoolnix-28.2.0\mkvmerge.exe" --ui-language ru --output "D:\D
ownload\!Vid2CHG\11.mkv" --language 0:rus "(" "D:\Convert\YT_ch_LVL\11.ts" ")" -
-no-video --language 1:rus --default-track 1:yes --forced-track 1:yes "(" "D:\Do
wnload\Video\11.mp4" ")" --track-order 0:0,1:1
 del /Q "D:\Convert\YT_ch_LVL\11.meta"
 del /Q "D:\Convert\YT_ch_LVL\11.ts"
 Ren "D:\Download\Video\\11.mp4" "Ковёр-самолёт - Русский трейлер (2019).mp4"
 Ren "D:\Download\!Vid2CHG\\11.mkv" "Ковёр-самолёт - Русский трейлер (2019).mkv"

)
Не удается найти указанный файл.
Network Optix tsMuxeR.  Version 2.6.12. www.networkoptix.com
Can't open file: D:\Download\Video\11.mp4
mkvmerge v28.2.0 ('The Awakening') 64-bit
Ошибка: Файл 'D:\Convert\YT_ch_LVL\11.ts' не может быть открыт для чтения: open
file error.
Не удается найти D:\Convert\YT_ch_LVL\11.ts
Не удается найти указанный файл.
Не удается найти указанный файл.

d:\Convert\YT_ch_LVL>(
Ren "D:\Download\Video\\Время возмездия - Русский трейлер (2019).mp4" "11.mp4"

 echo MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr  --vbv-len=500  1>>"D:\
Convert\YT_ch_LVL\11.meta"
 echo V_MPEG4/ISO/AVC, "D:\Download\Video\11.mp4", level=4.1, insertSEI, contSPS
, ar=As source, track=1, lang=und  1>>"D:\Convert\YT_ch_LVL\11.meta"
 echo #A_AAC, "D:\Download\Video\11.mp4", track=2, lang=eng  1>>"D:\Convert\YT_c
h_LVL\11.meta"
 "c:\Soft\!Video\tsMuxeR_2.6.12\tsMuxeR.exe" "D:\Convert\YT_ch_LVL\11.meta" "D:\
Convert\YT_ch_LVL\11.ts"
 "C:/Soft/!Video/MKVtoolnix-28.2.0\mkvmerge.exe" --ui-language ru --output "D:\D
ownload\!Vid2CHG\11.mkv" --language 0:rus "(" "D:\Convert\YT_ch_LVL\11.ts" ")" -
-no-video --language 1:rus --default-track 1:yes --forced-track 1:yes "(" "D:\Do
wnload\Video\11.mp4" ")" --track-order 0:0,1:1
 del /Q "D:\Convert\YT_ch_LVL\11.meta"
 del /Q "D:\Convert\YT_ch_LVL\11.ts"
 Ren "D:\Download\Video\\11.mp4" "Время возмездия - Русский трейлер (2019).mp4"

 Ren "D:\Download\!Vid2CHG\\11.mkv" "Время возмездия - Русский трейлер (2019).mk
v"
)
Не удается найти указанный файл.
Network Optix tsMuxeR.  Version 2.6.12. www.networkoptix.com
Can't open file: D:\Download\Video\11.mp4
mkvmerge v28.2.0 ('The Awakening') 64-bit
Ошибка: Файл 'D:\Convert\YT_ch_LVL\11.ts' не может быть открыт для чтения: open
file error.
Не удается найти D:\Convert\YT_ch_LVL\11.ts
Не удается найти указанный файл.
Не удается найти указанный файл.

d:\Convert\YT_ch_LVL>(
Ren "D:\Download\Video\\Nailed It! Holiday!  Official Trailer [HD]  Netflix.mp4"
 "11.mp4"
 echo MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr  --vbv-len=500  1>>"D:\
Convert\YT_ch_LVL\11.meta"
 echo V_MPEG4/ISO/AVC, "D:\Download\Video\11.mp4", level=4.1, insertSEI, contSPS
, ar=As source, track=1, lang=und  1>>"D:\Convert\YT_ch_LVL\11.meta"
 echo #A_AAC, "D:\Download\Video\11.mp4", track=2, lang=eng  1>>"D:\Convert\YT_c
h_LVL\11.meta"
 "c:\Soft\!Video\tsMuxeR_2.6.12\tsMuxeR.exe" "D:\Convert\YT_ch_LVL\11.meta" "D:\
Convert\YT_ch_LVL\11.ts"
 "C:/Soft/!Video/MKVtoolnix-28.2.0\mkvmerge.exe" --ui-language ru --output "D:\D
ownload\!Vid2CHG\11.mkv" --language 0:rus "(" "D:\Convert\YT_ch_LVL\11.ts" ")" -
-no-video --language 1:rus --default-track 1:yes --forced-track 1:yes "(" "D:\Do
wnload\Video\11.mp4" ")" --track-order 0:0,1:1
 del /Q "D:\Convert\YT_ch_LVL\11.meta"
 del /Q "D:\Convert\YT_ch_LVL\11.ts"
 Ren "D:\Download\Video\\11.mp4" "Nailed It! Holiday!  Official Trailer [HD]  Ne
tflix.mp4"
 Ren "D:\Download\!Vid2CHG\\11.mkv" "Nailed It! Holiday!  Official Trailer [HD]
 Netflix.mkv"
)
Network Optix tsMuxeR.  Version 2.6.12. www.networkoptix.com
Decoding H264 stream (track 1): Profile: High@4.0  Resolution: 1920:1080p  Frame
 rate: 23.976
Change H264 level from 4 to 4.1
H.264 muxing fps is not set. Get fps from stream. Value: 23.976
0.5% complete
H264 bitstream changed: insert nal unit delimiters
H264 bitstream changed: insert pict timing and buffering period SEI units
H264 bitstream changed: insert SPS/PPS units
Processed 2353 video frames
99.7% complete
Flushing write buffer
Mux successful complete
Muxing time: 0 sec
mkvmerge v28.2.0 ('The Awakening') 64-bit
'D:\Convert\YT_ch_LVL\11.ts': Применяется разделение для формата 'Транспортный п
оток MPEG'.
'D:\Download\Video\11.mp4': Применяется разделение для формата 'QuickTime/MP4'.
'D:\Convert\YT_ch_LVL\11.ts' дорожка 0: Применяется модуль вывода для формата 'A
VC/h.264 (неструктурированный)'.
'D:\Download\Video\11.mp4' дорожка 1: Применяется модуль вывода для формата 'AAC
'.
Файл 'D:\Download\!Vid2CHG\11.mkv' открыт для записи.
'D:\Convert\YT_ch_LVL\11.ts' дорожка 0: Данные о соотношении сторон изображения
извлечены из видеоданных MPEG-4 layer 10 (AVC), установлены размеры изображения
1920/1080.
Обработано: 100%
Пишутся записи cue (индекс)...
Слияние 0 секунд.

d:\Convert\YT_ch_LVL>(
Ren "D:\Download\Video\\Волки и Овцы Ход свиньёй - Трейлер (2019).mp4" "11.mp4"

 echo MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr  --vbv-len=500  1>>"D:\
Convert\YT_ch_LVL\11.meta"
 echo V_MPEG4/ISO/AVC, "D:\Download\Video\11.mp4", level=4.1, insertSEI, contSPS
, ar=As source, track=1, lang=und  1>>"D:\Convert\YT_ch_LVL\11.meta"
 echo #A_AAC, "D:\Download\Video\11.mp4", track=2, lang=eng  1>>"D:\Convert\YT_c
h_LVL\11.meta"
 "c:\Soft\!Video\tsMuxeR_2.6.12\tsMuxeR.exe" "D:\Convert\YT_ch_LVL\11.meta" "D:\
Convert\YT_ch_LVL\11.ts"
 "C:/Soft/!Video/MKVtoolnix-28.2.0\mkvmerge.exe" --ui-language ru --output "D:\D
ownload\!Vid2CHG\11.mkv" --language 0:rus "(" "D:\Convert\YT_ch_LVL\11.ts" ")" -
-no-video --language 1:rus --default-track 1:yes --forced-track 1:yes "(" "D:\Do
wnload\Video\11.mp4" ")" --track-order 0:0,1:1
 del /Q "D:\Convert\YT_ch_LVL\11.meta"
 del /Q "D:\Convert\YT_ch_LVL\11.ts"
 Ren "D:\Download\Video\\11.mp4" "Волки и Овцы Ход свиньёй - Трейлер (2019).mp4"

 Ren "D:\Download\!Vid2CHG\\11.mkv" "Волки и Овцы Ход свиньёй - Трейлер (2019).m
kv"
)
Не удается найти указанный файл.
Network Optix tsMuxeR.  Version 2.6.12. www.networkoptix.com
Can't open file: D:\Download\Video\11.mp4
mkvmerge v28.2.0 ('The Awakening') 64-bit
Ошибка: Файл 'D:\Convert\YT_ch_LVL\11.ts' не может быть открыт для чтения: open
file error.
Не удается найти D:\Convert\YT_ch_LVL\11.ts
Не удается найти указанный файл.
Не удается найти указанный файл.

d:\Convert\YT_ch_LVL>(
Ren "D:\Download\Video\\A Christmas Prince  Rose McIver Wrapped Up with Netflix
 Netflix.mp4" "11.mp4"
 echo MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr  --vbv-len=500  1>>"D:\
Convert\YT_ch_LVL\11.meta"
 echo V_MPEG4/ISO/AVC, "D:\Download\Video\11.mp4", level=4.1, insertSEI, contSPS
, ar=As source, track=1, lang=und  1>>"D:\Convert\YT_ch_LVL\11.meta"
 echo #A_AAC, "D:\Download\Video\11.mp4", track=2, lang=eng  1>>"D:\Convert\YT_c
h_LVL\11.meta"
 "c:\Soft\!Video\tsMuxeR_2.6.12\tsMuxeR.exe" "D:\Convert\YT_ch_LVL\11.meta" "D:\
Convert\YT_ch_LVL\11.ts"
 "C:/Soft/!Video/MKVtoolnix-28.2.0\mkvmerge.exe" --ui-language ru --output "D:\D
ownload\!Vid2CHG\11.mkv" --language 0:rus "(" "D:\Convert\YT_ch_LVL\11.ts" ")" -
-no-video --language 1:rus --default-track 1:yes --forced-track 1:yes "(" "D:\Do
wnload\Video\11.mp4" ")" --track-order 0:0,1:1
 del /Q "D:\Convert\YT_ch_LVL\11.meta"
 del /Q "D:\Convert\YT_ch_LVL\11.ts"
 Ren "D:\Download\Video\\11.mp4" "A Christmas Prince  Rose McIver Wrapped Up wit
h Netflix  Netflix.mp4"
 Ren "D:\Download\!Vid2CHG\\11.mkv" "A Christmas Prince  Rose McIver Wrapped Up
with Netflix  Netflix.mkv"
)
Network Optix tsMuxeR.  Version 2.6.12. www.networkoptix.com
Decoding H264 stream (track 1): Profile: High@4.0  Resolution: 1920:1080p  Frame
 rate: 23.976
Change H264 level from 4 to 4.1
H.264 muxing fps is not set. Get fps from stream. Value: 23.976
0.4% complete
H264 bitstream changed: insert nal unit delimiters
H264 bitstream changed: insert pict timing and buffering period SEI units
H264 bitstream changed: insert SPS/PPS units
Processed 5605 video frames
99.7% complete
Flushing write buffer
Mux successful complete
Muxing time: 0 sec
mkvmerge v28.2.0 ('The Awakening') 64-bit
'D:\Convert\YT_ch_LVL\11.ts': Применяется разделение для формата 'Транспортный п
оток MPEG'.
'D:\Download\Video\11.mp4': Применяется разделение для формата 'QuickTime/MP4'.
'D:\Convert\YT_ch_LVL\11.ts' дорожка 0: Применяется модуль вывода для формата 'A
VC/h.264 (неструктурированный)'.
'D:\Download\Video\11.mp4' дорожка 1: Применяется модуль вывода для формата 'AAC
'.
Файл 'D:\Download\!Vid2CHG\11.mkv' открыт для записи.
'D:\Convert\YT_ch_LVL\11.ts' дорожка 0: Данные о соотношении сторон изображения
извлечены из видеоданных MPEG-4 layer 10 (AVC), установлены размеры изображения
1920/1080.
Обработано: 100%
Пишутся записи cue (индекс)...
Слияние 1 секунда.

d:\Convert\YT_ch_LVL>(
Ren "D:\Download\Video\\История игрушек 4 - Русский тизер-трейлер #1 (2019).mp4"
 "11.mp4"
 echo MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr  --vbv-len=500  1>>"D:\
Convert\YT_ch_LVL\11.meta"
 echo V_MPEG4/ISO/AVC, "D:\Download\Video\11.mp4", level=4.1, insertSEI, contSPS
, ar=As source, track=1, lang=und  1>>"D:\Convert\YT_ch_LVL\11.meta"
 echo #A_AAC, "D:\Download\Video\11.mp4", track=2, lang=eng  1>>"D:\Convert\YT_c
h_LVL\11.meta"
 "c:\Soft\!Video\tsMuxeR_2.6.12\tsMuxeR.exe" "D:\Convert\YT_ch_LVL\11.meta" "D:\
Convert\YT_ch_LVL\11.ts"
 "C:/Soft/!Video/MKVtoolnix-28.2.0\mkvmerge.exe" --ui-language ru --output "D:\D
ownload\!Vid2CHG\11.mkv" --language 0:rus "(" "D:\Convert\YT_ch_LVL\11.ts" ")" -
-no-video --language 1:rus --default-track 1:yes --forced-track 1:yes "(" "D:\Do
wnload\Video\11.mp4" ")" --track-order 0:0,1:1
 del /Q "D:\Convert\YT_ch_LVL\11.meta"
 del /Q "D:\Convert\YT_ch_LVL\11.ts"
 Ren "D:\Download\Video\\11.mp4" "История игрушек 4 - Русский тизер-трейлер #1 (
2019).mp4"
 Ren "D:\Download\!Vid2CHG\\11.mkv" "История игрушек 4 - Русский тизер-трейлер #
1 (2019).mkv"
)
Не удается найти указанный файл.
Network Optix tsMuxeR.  Version 2.6.12. www.networkoptix.com
Can't open file: D:\Download\Video\11.mp4
mkvmerge v28.2.0 ('The Awakening') 64-bit
Ошибка: Файл 'D:\Convert\YT_ch_LVL\11.ts' не может быть открыт для чтения: open
file error.
Не удается найти D:\Convert\YT_ch_LVL\11.ts
Не удается найти указанный файл.
Не удается найти указанный файл.

d:\Convert\YT_ch_LVL>pause
Для продолжения нажмите любую клавишу . . .


megaloman 30-11-2018 22:01 2843486

rider42, не надо в путях указывать последний слэж
Код:

Set "BoxIn=D:\Download\Video"
Set "BoxOut=D:\Download\!Vid2CHG"

А во время скрипта какие-либо ошибки выскакивают?

rider42 30-11-2018 22:28 2843489

megaloman,
Ещё раз спасибо. Убрал.

Как я выяснил ошибка с теми файлами, в названии которых есть символ
Код:


Такие файлы просто не обрабатываются.

Скопировать из командной строки почему-то не выходит, так что извиняюсь за сриншот
https://lh3.googleusercontent.com/-c...0_23-43-43.png

megaloman 01-12-2018 12:09 2843527

Цитата:

Цитата rider42
Как я выяснил ошибка с теми файлами, в названии которых есть символ »

Символ как символ, если Вы, конечно, меня не обманываете. Дайте поиграться с именами Ваших файлов. Проделайте в командной строке команду
Код:

dir "D:\Download\Video\*.mp4" /B /A:-D >D:\яяяяяяяяяяя.txt
Получившийся файл прикрепите к сообщению.
У меня создалось впечатление, что Вы излагаете неверную версию. Моё предположение:
Файл "Ковёр.mp4" благополучно переименовался в 11.mp4
После обработки файл 11.mkv не создался
Файл 11.mp4 благополучно переименовался в "Ковёр.mp4"
Файл 11.mkv не переименовался в "Ковёр.mkv", так как не найден
Доработал батник, чтобы он делал лог-файл, чтобы можно было понять, что и как обработалось, а что нет
Код:

@Echo Off
cls
        Set "BoxIn=D:\Download\Video"
        Set "BoxOut=D:\Download\!Vid2CHG"

        Set "ExtIn=mp4"
        Set "ExtOut=mkv"
       
        Set "LogBat=%~dpnx0.log"
       
        If Not Exist "%BoxOut%" Md "%BoxOut%"

        Set /A NNN=11
        >"%LogBat%" Echo    %Date% %Time%

        FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\*.%ExtIn%" /b /a:-d /O:D`) DO (

                >>"%LogBat%" (Echo: &Echo === begin "%BoxIn%\%%f")
                Del "%BoxOut%\%NNN%.%ExtOut%" >nul 2>&1

                Call :MyMove "%BoxIn%\%%f" "%BoxIn%\%NNN%.%ExtIn%"
rem Обработка программами
                Echo "%BoxIn%\%%f"
                Echo "%BoxIn%\%NNN%.%ExtIn%"
                Echo:
                Copy "%BoxIn%\%NNN%.%ExtIn%" "%BoxOut%\%NNN%.%ExtOut%" >nul
rem ---------------------


                Call :MyMove "%BoxIn%\%NNN%.%ExtIn%" "%BoxIn%\%%f"
                Call :MyMove "%BoxOut%\%NNN%.%ExtOut%" "%BoxOut%\%%~nf.%ExtOut%"
        )
pause
GoTo :Eof

:MyMove
                If Not Exist %1 (
                        >>"%LogBat%" Echo --- not found %1
                        Exit /B 2                       
                )

                >>"%LogBat%" 2>&1 Move /Y %1 %2
                If Exist %2 (
                        >>"%LogBat%" Echo +++ success Move /Y %1 %2
                ) Else (
                        >>"%LogBat%" Echo --- failure Move /Y %1 %2
                        >>"%LogBat%" Echo --- failure Move /Y %1 %2
                )
GoTo :Eof

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

rider42 01-12-2018 19:46 2843583

Вложений: 2
megaloman, спасибо что продолжаете заморачиваться. Приложил к сообщению файлы.

megaloman 01-12-2018 22:02 2843614

Вложений: 1
rider42, Похоже, в названиях присутствуют символы, не отражающиеся в 866 кодировке. Приложил переименованный vbs-скрипт, выполните его, полученный txt-файл приложите к сообщению.

rider42 01-12-2018 22:08 2843617

Вложений: 1
Цитата:

Цитата megaloman
rider42, Похоже, в названиях присутствуют символы, не отражающиеся в 866 кодировке. Приложил переименованный vbs-скрипт, выполните его, полученный txt-файл приложите к сообщению. »

Готово

megaloman 01-12-2018 22:46 2843628

rider42,
Попробуйте вариант, у меня отрабатывает на Ваших наименованиях. Отличие - в одной строке CHCP
Код:

@Echo Off
cls
chcp 1251 >nul
        Set "BoxIn=D:\Download\Video"
        Set "BoxOut=D:\Download\!Vid2CHG"

        Set "ExtIn=mp4"
        Set "ExtOut=mkv"
       
        Set "LogBat=%~dpnx0.log"
       
        If Not Exist "%BoxOut%" Md "%BoxOut%"

        Set /A NNN=11
        >"%LogBat%" Echo    %Date% %Time%

        FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\*.%ExtIn%" /b /a:-d /O:D`) DO (

                >>"%LogBat%" (Echo: &Echo === begin "%BoxIn%\%%f")

                Call :MyMove "%BoxIn%\%%f" "%BoxIn%\%NNN%.%ExtIn%"
                Del "%BoxOut%\%NNN%.%ExtOut%" >nul 2>&1

rem Обработка программами
                Echo "%BoxIn%\%%f"
                Echo "%BoxIn%\%NNN%.%ExtIn%"
                Echo:
                Copy "%BoxIn%\%NNN%.%ExtIn%" "%BoxOut%\%NNN%.%ExtOut%" >nul
rem ---------------------

                Call :MyMove "%BoxIn%\%NNN%.%ExtIn%" "%BoxIn%\%%f"
                Call :MyMove "%BoxOut%\%NNN%.%ExtOut%" "%BoxOut%\%%~nf.%ExtOut%"
        )
pause
GoTo :Eof

:MyMove
                If Not Exist %1 (
                        >>"%LogBat%" Echo --- not found %1
                        Exit /B 2                       
                )

                >>"%LogBat%" 2>&1 Move /Y %1 %2
                If Exist %2 (
                        >>"%LogBat%" Echo +++ success Move /Y %1 %2
                ) Else (
                        >>"%LogBat%" Echo --- failure Move /Y %1 %2
                        >>"%LogBat%" Echo --- failure Move /Y %1 %2
                )
GoTo :Eof


rider42 01-12-2018 23:05 2843631

megaloman, огромное спасибо. Теперь всё работает. Правда в самой командной строке при отработке bat'ника вместо русского крякозябры, но в итоге с конечными файлами всё отлично.

megaloman 01-12-2018 23:11 2843632

rider42,
Цитата:

Цитата rider42
Правда в самой командной строке при отработке bat'ника вместо русского крякозябры »

А оно Вам надо? Для этого есть лог-файл.

rider42 01-12-2018 23:13 2843633

Цитата:

Цитата megaloman
А оно Вам надо? Для этого есть лог-файл. »

Нее, ни разу. Просто подумал, что это надо озвучить на всякий случай. И ещё раз огромное спасибо!

rider42 08-12-2018 10:30 2844809

Ещё раз здравствуйте. Это снова я :teeth:

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

Заранее спасибо!

Iska 08-12-2018 11:56 2844824

Цитата:

Цитата rider42
а как будет выглядеть код, если допустим исходных папок с файлами несколько? »

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

alpap 08-12-2018 14:45 2844842

Код:

@echo off
set "d=C:\papka"
set "ext=txt"
set n=10

for /d /r "%d%" %%a in (*) do (
 setlocal
  pushd "%%a"
  for %%a in (*.%ext%) do set /a n+=1& call :# "%%a" "%%n%%%%~xa"
  popd
 endlocal
)
pause& exit
 
:#
 ren "%~1" "%~2"
 >"%~2" echo Операция с "%~2"
 ren "%~2" "%~1"
exit /b


Busla 08-12-2018 14:57 2844844

Цитата:

Цитата rider42
как будет выглядеть код, если допустим исходных папок с файлами несколько »

по уму, пишется скрипт умеющий обрабатывать единственный файл (а лучше - принимающий конвейер), и после уже штатными средствами он выполняется для списка, директории, поддерева каталогов и т.п.

примерно такой скрипт:
Код:

echo off
set programm1=echo executing first_programm.exe
set programm2=echo evecuting second_programm.exe

set targetdir=%1
set tempdir=%TEMP%\%~n0%RANDOM%
call :safetyExecute mkdir %tempdir%
if ERRORLEVEL 1 exit 1

FOR /F "tokens=1* delims=]" %%A IN ('FIND /N /V ""') DO (
  call :process "%%~B" %*
)
call :safetyExecute rmdir /S /Q %tempdir%
if ERRORLEVEL 1 exit 3
goto :EOF

:process
set tempfile=%tempdir%\%RANDOM%%~x1
set targetfullname=%targetdir%\%~n1.mkv
call :safetyExecute mklink "%tempfile%" %1
if ERRORLEVEL 1 goto :eof
call :safetyExecute %programm1% /key1 %2 /key2 %tempfile% %targetfullname%
if ERRORLEVEL 1 goto :eof
call :safetyExecute %programm2% --key1 %2 --key2 %tempfile% %targetfullname%
if ERRORLEVEL 1 goto :eof
call :safetyExecute del %tempfile%
goto :eof


:safetyExecute
echo [running] %*
%*
if ERRORLEVEL 1 (
  echo [error %ERORRLEVEL%] %*
  exit 2
)
goto :EOF

запускать примерно так:
Код:

dir /s /b c:\dir1 e:\dir2 | videoprocess.bat c:\targetdir
я отказался от переименования в пользу создания символьных ссылок, т.к. в реалистичном workflow исходный файл это или torrent, который после переименования начнёт перекачиваться, или карта памяти из камеры, которая защищена от записи
а hardlink не работают с NAS, FAT и требую админских прав

megaloman 08-12-2018 15:45 2844852

rider42,
Цитата:

Цитата Iska
Оформляете основной код в виде процедуры и вызываете эту процедуру столько раз, сколько у Вас есть исходных каталогов, передавая ей потребные параметры, включая очередной исходный каталог. »

как будет выглядеть код, если допустим исходных папок с файлами несколько
Код:

@Echo Off
cls
chcp 1251 >nul
        Set "LogBat=%~dpnx0.log"
        >"%LogBat%" Echo    %Date% %Time%

        Call :Process "Z:\Download\Video" "Z:\Download\!Vid2CHG" "mp4" "mkv"
        Call :Process "Z:\Box_In\Download\Video" "Z:\Box_In\Download\!Vid2CHG" "mp4" "mkv"
        Call :Process "Z:\Soft_In\Download\Video" "Z:\Soft_In\Download\!Vid2CHG" "mp4" "mkv"
pause
GoTo :Eof

:Process
        Set "BoxIn=%~1"
        Set "BoxOut=%~2"
        Set "ExtIn=%~3"
        Set "ExtOut=%~4"
       
        If Not Exist "%BoxOut%" Md "%BoxOut%"

        Set /A NNN=11

        FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\*.%ExtIn%" /b /a:-d /O:D`) DO (

                >>"%LogBat%" (Echo: &Echo === begin "%BoxIn%\%%f")

                Call :MyMove "%BoxIn%\%%f" "%BoxIn%\%NNN%.%ExtIn%"
                Del "%BoxOut%\%NNN%.%ExtOut%" >nul 2>&1

rem Обработка программами
                Echo "%BoxIn%\%%f"
                Echo "%BoxIn%\%NNN%.%ExtIn%"
                Echo:
                Copy "%BoxIn%\%NNN%.%ExtIn%" "%BoxOut%\%NNN%.%ExtOut%" >nul
rem ---------------------


                Call :MyMove "%BoxIn%\%NNN%.%ExtIn%" "%BoxIn%\%%f"
                Call :MyMove "%BoxOut%\%NNN%.%ExtOut%" "%BoxOut%\%%~nf.%ExtOut%"
        )
GoTo :Eof

:MyMove
                If Not Exist %1 (
                        >>"%LogBat%" Echo --- not found %1
                        Exit /B 2                       
                )

                >>"%LogBat%" 2>&1 Move /Y %1 %2
                If Exist %2 (
                        >>"%LogBat%" Echo +++ success Move /Y %1 %2
                ) Else (
                        >>"%LogBat%" Echo --- failure Move /Y %1 %2
                        >>"%LogBat%" Echo --- failure Move /Y %1 %2
                )
GoTo :Eof


rider42 08-12-2018 20:52 2844887

Вложений: 1
Цитата:

Цитата megaloman
как будет выглядеть код, если допустим исходных папок с файлами несколько »

Я неверное снова что-то сделал не так, но данный варианту меня не работает.

Суть такова:

В папке "d:\uTorrent\work\(WRKD)\LostFilm\" лежит главный файл, а в папке "d:\uTorrent\work\(WRKD)\LostFilm\aud\" дополнительный. В папке же "d:\uTorrent\work\(WRKD)\" должен оказаться итоговый файл после обработки с именем файла как в "d:\uTorrent\work\(WRKD)\LostFilm\"
Скрытый текст
Код:

@Echo Off
cls
chcp 1251 >nul
        Set "LogBat=%~dpnx0.log"
        >"%LogBat%" Echo    %Date% %Time%

        Call :Process "d:\uTorrent\work\(WRKD)\LostFilm" "d:\uTorrent\work\(WRKD)" "mkv" "mkv"
        Call :Process "d:\uTorrent\work\(WRKD)\LostFilm\aud\" "d:\uTorrent\work\(WRKD)\LostFilm\Temp1" "mkv" "mkv"
       
pause
GoTo :Eof

:Process
        Set "BoxIn=%~1"
        Set "BoxOut=%~2"
        Set "ExtIn=%~3"
        Set "ExtOut=%~4"
       
        If Not Exist "%BoxOut%" Md "%BoxOut%"

        Set /A NNN=11

        FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\*.%ExtIn%" /b /a:-d /O:D`) DO (

                >>"%LogBat%" (Echo: &Echo === begin "%BoxIn%\%%f")

                Call :MyMove "%BoxIn%\%%f" "%BoxIn%\%NNN%.%ExtIn%"
                Del "%BoxOut%\%NNN%.%ExtOut%" >nul 2>&1

"C:/Soft/!Video/MKVtoolnix-29.0.0\mkvmerge.exe" --ui-language ru --output ^"D:\uTorrent\work\^(WRKD^)\11.mkv^" --language 0:eng --default-track 0:yes --language 1:eng --default-track 1:no --sub-charset 2:UTF-8 --language 2:eng ^"^(^" ^"D:\uTorrent\work\^(WRKD^)\LostFilm\11.mkv^" ^"^)^" --audio-tracks 1 --no-video --language 1:rus --track-name 1:LostFilm --default-track 1:yes --forced-track 1:yes --sync 1:-9250 ^"^(^" ^"D:\uTorrent\work\^(WRKD^)\LostFilm\aud\11.mkv^" ^"^)^" --track-order 0:0,1:1,0:1,0:2

                Call :MyMove "%BoxIn%\%NNN%.%ExtIn%" "%BoxIn%\%%f"
                Call :MyMove "%BoxOut%\%NNN%.%ExtOut%" "%BoxOut%\%%~nf.%ExtOut%"
        )
GoTo :Eof

:MyMove
                If Not Exist %1 (
                        >>"%LogBat%" Echo --- not found %1
                        Exit /B 2                       
                )

                >>"%LogBat%" 2>&1 Move /Y %1 %2
                If Exist %2 (
                        >>"%LogBat%" Echo +++ success Move /Y %1 %2
                ) Else (
                        >>"%LogBat%" Echo --- failure Move /Y %1 %2
                        >>"%LogBat%" Echo --- failure Move /Y %1 %2
                )
GoTo :Eof


rider42 08-12-2018 21:20 2844897

Цитата:

Цитата megaloman
Почему у Вас в вызове одинаковые расширения входного и выходного файла? »

В данном случае у всех файлов (исходных и итоговых) расширением является mkv


Время: 18:26.

Время: 18:26.
© OSzone.net 2001-