Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Выполнить действие для текущего файла

Ответить
Настройки темы
CMD/BAT - [решено] Выполнить действие для текущего файла

Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день.
Помогите пожалуйста.

Имеется BATник выполняющий функцию слияния одноименных файлов звука .m4a и видео .mp4, например луна.mp4 склеится с луна.m4a на выходе будет луна.mkv
Код: Выделить весь код
@ECHO OFF
for %%f in ("*.mp4") do mkvmerge.exe --output "%%f.mkv" ( "%%~nf.m4a" ) --no-audio --no-subtitles --no-attachments ( "%%f" ) --track-order 1:0,0:0
:end
Для того чтоб сработало, BATник всегда лежит в папке с этими файлами.

Очень бы хотелось сделать удаленно лежащий батник, и для него ярлык положить например в папку контекстного меню "Отправить...".
Т.е. чтоб правой кнопкой например по видеосодержащему файлу .mp4 ПКМ - Отправить - Батник и пошел процесс слияния даже если батник не лежит в текущей папке.

Если я сильно много хочу, то как вариант мне также нормальным кажется временное копирование батника в папку с текущим файлом, для которого я сделал ПКМ - Отправить - БАТник.
Т.е. лежит батник с вышеуказанным кодом на диске "c:\Program Files\K-Lite Codec Pack\Filters\ffmpeg\mkv.bat"
Ярлык для него лежит в "c:\Users\Пользователь\AppData\Roaming\Microsoft\Windows\SendTo\mkv.ink"

По случайному файлу, лежащему например в D:\Temp2\луна.mp4 (само собой и аудио файл скорее всего там лежит луна.m4a), ПКМ - Отправить - Батник
- батник копирует получается сам себя mkv.bat в эту папку с файлом (папку чтоб определяло просто как текущую, а не именно D:\Temp2\)
- выполняется
- самоудаляется из текущей папки

Отправлено: 11:47, 19-09-2020

 

Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Fors1k:
Вам нужно установить обновление: https://www.microsoft.com/en-us/down....aspx?id=54616 »
Fors1k
На этом у меня тупик, служба обновления отключена и ещё много чего отключено давным давно в моей Win 8.1
Повырезано много, думаю и пытаться запустить службу бесполезно.
Попытался, но установка обновления начинается, идет процесс, но неудача в итоге.
Ваш способ и для второго моего случая подошел бы, как раз выбирается файл, но...
Спасибо большое вам за помощь.

megaloman
придумал костыль как выделить из толпы mkv файлов в папке, нужный и его порезать.
Можно сменить у файла расширение например на .mmm и именно такие расширения искать bat файлу задать.
Как аварийный вариант пойдет.
Красиво как сделать, чтоб именно файл указывать можно было, ищу в инете, не могу пока ничего подобного найти
Т.е. вот такое извращение, сменил расширение на .mmm и запускаю
Код: Выделить весь код
@ECHO OFF
for %%f in ("*.mmm") do mkvmerge.exe --output "%%~nf/%%f" --audio-tracks rus --split size:4095M ( "%%f" )
for /d /r %%f in (.) do ren "%%f\*.mmm" "*.mkv"
:end
Сначала режет складывая в папку с именем файла, затем переименовывает все .mmm в .mkv включая подпапки текущей папки.

Последний раз редактировалось A555555, 23-09-2020 в 21:38.


Отправлено: 19:15, 23-09-2020 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


megaloman
Здравствуйте.
Не получится через Bat файл, для конкретного файла выполнять разрезание?

Я уже в принципе и к предыдущему для всей папки варианту приспособился, но не могу не спросить у вас ещё раз.

Отправлено: 09:48, 03-10-2020 | #22


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


A555555, Нет ничего проще чем через Bat файл для конкретного файла что-то сделать. Сложнее понять, что Вы хотите получить. Я совершенно не знаю утилиту mkvmerge.exe и могу только очень приблизительно догадываться, как корректно нарисовать имя/путь файла в её параметрах. Вот вариант, но делал совершенно тупо и реально на Вашей утилите не проверял.
Код: Выделить весь код
@Echo Off
cls

If Not Exist "%~1" (Echo File "%~1" not found &Pause &Exit /B 2)
	
Pushd "%~dp1"
	Echo %CD%  %1
	mkvmerge.exe --output "%~n1/%~nx1" --audio-tracks rus --split size:4095M ( "%~nx1" )
Popd
Pause

Exit /B
Технология та же: затаскиваете конкретный файл мышкой на батник или на значок батника.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 03-10-2020 в 12:16.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:03, 03-10-2020 | #23



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Выполнить действие для текущего файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Выполнить действие при наличии определенных файлов в папках alexfeel30 Скриптовые языки администрирования Windows 1 03-03-2019 22:18
2007 - [решено] Excel. В зависимости от цвета заливки выполнить действие. vlad20 Microsoft Office (Word, Excel, Outlook и т.д.) 1 27-08-2012 14:21
Выполнить действие по отсутствию цвета deffol AutoIt 3 14-08-2011 01:32
Как получить имя текущего пользователя для использования его в имени файла Denchik Автоматическая установка Windows 2000/XP/2003 1 25-01-2006 22:33




 
Переход