|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Помощь с написанием Bat. Переименование файлов в папке с условием. |
|
|
CMD/BAT - [решено] Помощь с написанием Bat. Переименование файлов в папке с условием.
|
Новый участник Сообщения: 12 |
Профиль | Отправить PM | Цитировать Приветствую вас, гуру сообщество)
Прошу помощи в написании пакетного файла, если таковой возможно написать. условия задачи следующие: есть две сетевые папки "А" и "B" в папку "A" кладут n-ое кол-во файлов с расширением .mp3 в папке "B" лежит n-ое кол-во файлов с расширением .mp4 задача: по запуску пакетного файла смотреть на имена .mp3 файлов в папке "A" и переименовать файлы .mp4 в папке "B" в соответствии с именами в "A", не трогая при этом расширение. Пример: положили в папку "А" - 3 файла с именами 1.mp3, 2.mp3, 3.mp3. в папке "B" лежат файлы 10.mp4, 12.mp4, 16.mp4, 20.mp4, 25.mp4 Запускаем пакетный файл и получаем в папке "B" файлы с именами 1.mp4, 2.mp4, 3.mp4, 20.mp4, 25.mp4 Содержимое файлов mp4. абсолютно одинаковое, поэтому не важно в какой последовательности они будут переименованы. В папку "A" могут положить больше файлов чем есть в папке "B", в таком случае переименование идет пока не закончатся файлы в папке "B". |
|
Отправлено: 18:53, 12-03-2019 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата dedylka:
|
|
Отправлено: 19:10, 12-03-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать А что вы имеете ввиду под соответствием?
какой файл mp3 в "А" соответствует файлу mp4 в "B"? это не важно, как я написал, все файлы mp4 одинаковые. Главное, чтобы в "B" по итогу были файлы с такими же именами, как и в "A", кроме расширения. |
Отправлено: 19:34, 12-03-2019 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Тогда зачем их там делать несколько штук? Или больше, чем есть mp3-файлов? Пусть один и будет.
На WSH: Скрытый текст
Option Explicit Dim strSourceFolder Dim strDestFolder Dim objFSO Dim objFile Dim objFile2 Dim boolFound strSourceFolder = "C:\Мои проекты\0252\A" strDestFolder = "C:\Мои проекты\0252\B" Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(strSourceFolder) Then If objFSO.FolderExists(strSourceFolder) Then boolFound = False For Each objFile2 In objFSO.GetFolder(strDestFolder).Files If StrComp(objFSO.GetExtensionName(objFile2.Name), "mp4", 0) = 0 Then boolFound = True Exit For End If Next If boolFound Then boolFound = False For Each objFile In objFSO.GetFolder(strSourceFolder).Files If StrComp(objFSO.GetExtensionName(objFile.Name), "mp3", 0) = 0 Then boolFound = True objFile2.Copy objFSO.BuildPath(objFile2.ParentFolder, objFSO.GetBaseName(objFile.Name) & "." & objFSO.GetExtensionName(objFile2)), True End If Next If boolFound Then objFile2.Delete True End If Else WScript.Echo "Need at least one mp4 file in destination folder [" & strDestFolder & "]." WScript.Quit 3 End If Else WScript.Echo "Can't find destination folder [" & strDestFolder & "]." WScript.Quit 2 End If Else WScript.Echo "Can't find source folder [" & strSourceFolder & "]." WScript.Quit 1 End If Set objFSO = Nothing WScript.Quit 0 Может, лучше опишете саму задачу? |
Отправлено: 19:51, 12-03-2019 | #4 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Есть система визуализации аудиофайлов. Играет некий плейлист из mp3 файлов, программа при запуске файла смотрит на его имя и сканирует другую папку на наличие файла mp4 с таким же именем, если находит картинка запускается на экран, не находит не запускается. Т.к. некоторая часть mp4 файлов одинаковая, задача облегчить жизнь людям, которые эти файлы переименовывают руками. Цитата Iska:
|
|||
Отправлено: 15:43, 13-03-2019 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата dedylka:
dedylka, вопрос по: Цитата dedylka:
|
||
Отправлено: 17:15, 13-03-2019 | #6 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать @echo off set "dirA=A" set "dirB=B" setlocal enabledelayedexpansion for /f "delims=" %%a in ('dir /a-d/b "%dirA%\*"') do set /a "n+=1,nx=n+1,x=0"& set "c!n!=%%~na" for /f "delims=" %%a in ('dir /a-d/b "%dirB%\*"') do set /a m+=1& set "l!m!=%%a"& call :# "%%l!m!%%" "%%c!m!%%" "%dirA%" "%dirB%" endlocal pause& exit :# if not "%~2"=="" (set "z=%~2") else (set /a x+=1& if not !x!==%nx% (call set "z=%%c!x!%%") else (set /a x=0& goto #)) pushd "%~4" if not exist "%z%%~x1" ren "%~1" "%z%%~x1" popd exit /b код будет переименовывать файлы в "B" именами файлов из "A" по кругу вот так Файл 156828 |
Последний раз редактировалось alpap, 26-05-2020 в 16:12. Отправлено: 20:58, 13-03-2019 | #7 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата Iska:
он переименовывает первый файл, а дальше видимо копирует его столько раз сколько файлов в папке A и называет нужными именами, при этом остальные файлы в папке B, которые не были переименованы просто оставляет. Таким образом папка B очень скоро будет завалена файлами( |
||
Отправлено: 12:49, 14-03-2019 | #8 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать помогите, пожалуйста, с батником для переименования
Суть: нужно перекодировать dts в ас3 из dts вытаскиваем wav программой eac3to, она выдает файлы вида 2eng.C.wav 2eng.L.wav 2eng.LFE.wav 2eng.R.wav 2eng.SL.wav 2eng.SR.wav а программа кодировщик хочет 2eng C.wav 2eng L.wav 2eng LFE.wav 2eng R.wav 2eng Ls.wav 2eng Rs.wav т.е. после 2eng вместо точки поставить пробел и два файла переименовать: 2eng.SL.wav -> 2eng Ls.wav 2eng.SR.wav -> 2eng Rs.wav имена вавок 2eng могут быть произвольными (с точками и пробелами), но концовка всегда .C .L .R .SL .SR F1! |
------- Отправлено: 15:14, 14-03-2019 | #9 |
Ветеран Сообщения: 2710
|
Профиль | Отправить PM | Цитировать dedylka, Попробуйте. Пути пропишИте свои без \ на конце
@Echo Off Set "FMP3=Z:\Box_In" Set "EMP3=mp3" Set "FMP4=Z:\Soft_In" Set "EMP4=mp4" Set /A N=1000000 FOR %%f IN ("%FMP4%\*.%EMP4%") DO Ren "%%f" "~%%~nxf" FOR %%f IN ("%FMP4%\*.%EMP4%") DO Set /A N+=1 &Call Ren "%%f" "MP4@%%N%%.%EMP4%" Set /A N=1000000 FOR %%f IN ("%FMP3%\*.%EMP3%") DO Set /A N+=1 &>nul 2>&1 Call Ren "%FMP4%\MP4@%%N%%.%EMP4%" "%%~nf.%EMP4%" GoTo :Eof |
------- Отправлено: 15:21, 14-03-2019 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Помощь с написанием Bat. Перемещение и удаление файлов и папок старше N дней. | Stanley5 | Скриптовые языки администрирования Windows | 20 | 06-03-2019 05:39 | |
CMD/BAT - [решено] Переименование с условием bat | alado | Скриптовые языки администрирования Windows | 8 | 14-07-2017 19:27 | |
CMD/BAT - Архивирование, переименование и перемещение файлов с помощью BAT-файла | kirillius | Скриптовые языки администрирования Windows | 7 | 13-05-2016 12:57 | |
CMD/BAT - Переименование файлов в папке по имени папки_счётчик | Sergo_zloy | Скриптовые языки администрирования Windows | 13 | 17-01-2014 16:58 | |
CMD/BAT - Переименование группы файлов, используя команды bat | SergMarkow | Скриптовые языки администрирования Windows | 0 | 20-01-2013 23:23 |
|