Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Групповое переименование 
Author Message
Tol!k



PostPosted: Tue Mar 23, 2010 16:29    Post subject: Reply with quote

Code:
@echo off &chcp 1251 >nul
setlocal enableextensions
for /f "usebackq tokens=1,2 delims=;" %%f in ("films.csv") do (
call :part "%%~g" "%%~f"
)
exit /b

:part
set "part="
for /f %%p in ('echo."%~n1" ^|ssed.exe -n -r -e s/.*([Cc][Dd]_?[1-9]^).*/\1/p') do set "part=%%p"
if "%part%"=="" for /f %%p in ('echo."%~n1" ^|ssed.exe -n -r -e s/.*([Dd]is[ck]_?^)([1-9]^).*/cd\2/p') do set "part=%%p"
if "%part%"=="" for /f %%p in ('echo."%~n1" ^|ssed.exe -n -r -e s/.*([Pp]art_?^)([1-9]^).*/cd\2/p') do set "part=%%p"
if "%part%"=="" for /f "delims=" %%p in ('echo."%~n1" ^|ssed.exe -n -r -e s/.*([1-9][0-9]?\s?серия^).*/\1/p') do set "part=%%p"
if "%~x2"==".avi" (set "name=%~n2") else set "name=%~2"
set "name=%name:"=''%"
set "name=%name:/= - %"
set "name=%name::= - %"
set "name=%name:  = %"
set "name=%name:<={%"
set "name=%name:>=}%"
set "name=%name:?=%"
::эмуляция
if not "%part%"=="" (echo ren "%~1" "%name% %part%%~x1" ^|^|ren "%~1" "%name% %part%.cd2%~x1">> _2.cmd.txt)
if "%part%"=="" (echo ren "%~1" "%name%%~x1" ^|^|ren "%~1" "%name%.cd2%~x1">> _2.cmd.txt)
echo.>> _2.cmd.txt
::прожиг
rem if not "%part%"=="" (ren "%~1" "%name% %part%%~x1" ||(echo."%name% %part%%~x1" >>_конфликт.txt &ren "%~1" "%name% %part%.cd2%~x1"))
rem if "%part%"=="" (ren "%~1" "%name%%~x1" ||(echo."%name%%~x1" >>_конфликт.txt &ren "%~1" "%name%.cd2%~x1"))
goto :eof

Версия 2
Используется super-sed http://sed.sourceforge.net/grabbag/ssed/sed-3.62.zip, также должно работать и с GNU sed.
В старом имени ищется CD№ и добавляется к новому имени.

Если не удаётся переименовать в "Новое имя.ext", будет попытка переименовать в "Новое имя.cd2.ext"


Last edited by Tol!k on Wed Mar 24, 2010 12:01; edited 3 times in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group