Цитата Iska:
по условию задачи ничего не сказано про постоянный префикс
Если задача плохо формализована клиентом, приходится телепатить.
Вот попытка работать без определённого префикса. Но, опять же, приходится телепатить правило образования имени: КусокимениНомерРасширение. (скрипт 2)
[spoiler]Код: [/spoiler]
Код: Выделить всё
@Echo Off
cls
Set "BoxIn=Z:\Box_In"
Set "Folds="1111" "2222""
Set "Mask=*.*"
Set /A Max=1000
Set "BoxOut=Z:\Box_In\Total"
If Not Exist "%BoxOut%" Md "%BoxOut%"
Pushd "%BoxIn%" &&(
FOR %%d IN (%Folds%) DO (
FOR %%f IN ("%%~dpnxd\%Mask%") DO (
Call :RenCopy "%%~d" "%%f" "%%~nf" "%%~xf" "%BoxOut%"
)
)
Popd
)
Pause
GoTo :Eof
:RenCopy
Set /A i=0
Set "NewName=%~3"
:Begin
Set /A i-=1
Call Set "j=%%NewName:~%i%,1%%"
2>nul Set /A j=1%j% || Set /A j=0
If 10 LEQ %j% If %j% LEQ 19 GoTo :Begin
Set /A i+=1
If %i% EQU 0 GoTo :Eof
Call Set "j=%%NewName:~%i%%%"
If /I "%j%"==%1 GoTo :Eof
Set /A j+=%Max%
Call Set "NewName=%%NewName:~0,%i%%%%j:~1%_%~1%~4"
>nul Copy %2 "%~5\%NewName%"
>nul Ren %2 "%NewName%"
GoTo :EofЕстественно, Кусокимени не должен заканчиваться цифрой
Не очень тестировал, подозреваю, этот алгоритм можно обмануть
Цитата Iska:
пытаться выцепить значимую часть имени из произвольно взятых
невозможно любым средством. Сначала придётся определить, что такое значимая часть.

[/spoiler]