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

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

Ответить
Настройки темы
CMD/BAT - [решено] Обработка файлов в папках при перетаскивании на BAT

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


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

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


Добрый день! Есть BAT файл следующего содержания:
Код: Выделить весь код
SET ffmpeg=C:\Program Files (x86)\H.264 Encoder\ffmpeg.exe
ECHO Processing: "%~1"
:LOOP
IF "%~1"=="" GOTO :END
"%ffmpeg%" -i "%~1" -c:a copy -vn "%~1.m4a"
del "%~1"
ren "%~1.m4a" "*."
SHIFT
GOTO :LOOP
:END
На данный момент работает так: кладем BAT в папку с файлами, выделяем файлы, перетаскиваем на BAT файл. Всё работает, но хотелось бы чтобы работало и с файлами в папках (т. е. чтобы можно было перетащить на BAT файл папку с вложенными папками и файлами). Можно это реализовать?

Отправлено: 19:06, 11-12-2019

 

Ветеран


Contributor


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

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


Цитата TRaMeLL:
кладем BAT в папку с файлами »
Скрипт может быть где угодно. Этого делать не надо. Пропишите расширение для Ваших обрабатываемых файлов вместо txt. Set "Ext=txt"
Я не мог полноценно отладить скрипт с Вашими программами, поэтому в выделенных строках надо убрать Echo для боевой работы - я их тупо переписал у Вас.
На скрипт можете перетаскивать файлы, папки, их смесь. Папки обрабатываются с подпапками.
Код: Выделить весь код
@Echo Off
cls
	Set "ffmpeg=C:\Program Files (x86)\H.264 Encoder\ffmpeg.exe"
	Set "Ext=txt"

	If "%~1"=="" (Echo No Arguments &Pause &Exit /B 2)
	FOR %%f In (%*) DO (
		If Exist "%%~f\" (
			Echo Папка "%%~f"
			For /F "usebackq delims=" %%i In (`2^>nul Dir /B /S /A:-D "%%~f"`) Do Call :DoFile "%%i"
		) Else (
			If Exist "%%~f" (
				Call :DoFile "%%~f"
			) Else (
				Echo Файл или папка не найдены "%%~f"
			)
		)
	)
pause
Exit /B 0

:DoFile
	If /I Not ".%Ext%"=="%~x1" Exit /B 1
	Echo Обрабатываем файл "%~1"

	Echo "%ffmpeg%" -i "%~1" -c:a copy -vn "%~1.m4a"
	Echo del "%~1"
	Echo ren "%~1.m4a" "*."
Exit /B 0

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


Последний раз редактировалось megaloman, 11-12-2019 в 20:57.

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

Отправлено: 20:49, 11-12-2019 | #2



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

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



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [CMD/BAT]Автоархивация файлов в нескольких папках romfus Скриптовые языки администрирования Windows 4 27-02-2018 19:52
CMD/BAT - Сценарий,обработка файлов BAT balin96 Скриптовые языки администрирования Windows 2 18-04-2017 12:35
CMD/BAT - [решено] Обработка файлов перетаскиваемых на bat-ник support23 Скриптовые языки администрирования Windows 3 26-05-2015 09:02
Любой язык - Склеивание файлов в папках (желательно в bat, Но можно и ps) Тишина Скриптовые языки администрирования Windows 8 15-11-2013 09:06
Интерфейс - [решено] Запрос при перетаскивании файлов в проводнике DreDa Microsoft Windows 7 8 17-07-2012 14:46




 
Переход