2

Я получил файлы с именем, как это:

cam1(word1 word2 wordN) (24-04-2012 00-11-13).mpg
cam2(word1 word2 wordN) (24-04-2012 00-11-13).mpg
cam3(word1 word2 wordN) (24-04-2012 00-11-13).mpg

Необходимо вырезать (слово1 слово2 слово3) и заменить пробелы на _ Переименованные файлы ожидаются:

cam1_(24-04-2012_00-11-13).mpg
cam2_(24-04-2012_00-11-13).mpg
cam3_(24-04-2012_00-11-13).mpg

В первых скобках может быть разное количество "слов". Отметка времени всегда одинакова.

3 ответа3

0

Я использовал Bulk Rename Utility только для такого рода вещей. Это позволяет легко удалять, редактировать, заменять или добавлять числа в имена файлов. И это делает пакетные файлы. Я использую его все время для переименования фотографий и видеоклипов, а также mp3-файлов.

0

Добавьте этот код в пакетный файл.

For /f "tokens=1-3 delims=(" %%a in ('dir *.mpg /b') do call :DoRename "%%a" "%%b" "%%c"

Goto :eof
:DoRename
  Set SrcFile=%1(%2(%3
  Set SrcFile=%srcfile:"=%

  Set DestFile=%1 (%3
  Set DestFile=%DestFile:"=%
  Set DestFile=%DestFile: =_%

  Rename "%SrcFile%" "%DestFile%"
0

[Редактировать] как предложено Скоттом

Если вы можете сделать небольшой сценарий, я рекомендую autohotkey. Вы можете использовать простое регулярное выражение ().

Вот пример кода

Filelist=
Loop, C:\Data\*.mpg ;Assuming your files in data folder
Filelist = %Filelist%%A_LoopFileFullPath%`n
Loop, parse, filelist, `n
{
Renamed := Regrxreplace(A_Loopfield, "\(\w.+\)\s", "_")
Filemove, %A_LoopField%, %Renamed%
}

* Проверьте это на несколько файлов

С уважением SDK.

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