| Single Post |
Topic: Копирование с переименовыванием по счетчику |
| Author |
Message |
Tol!k

|
Posted: Fri Apr 13, 2012 20:33 Post subject: |
|
|
к http://forum.wincmd.ru/viewpost.php?p=62933
добавил третий параметр — кол-во разрядов в номере (по умолч. 3)
| Code: | @echo off &setlocal enableextensions &chcp 1251 >nul
rem Копирование файлов и папок с добавлением номера
rem Параметры: "%L" "d:\куда\" 3
rem Автор: Tol!k
rem http://forum.wincmd.ru/viewpost.php?p=91443
if not "%~3"=="" (set "#=%~3") else set "#=3"
setlocal enabledelayedexpansion
for /l %%i in (2,1,%#%) do (set "min=0!min!" &set "max=9!max!")
endlocal &set "min=0%min%" &set "max=9%max%"
set "trg=%~2"
for /f "delims=" %%f in ('type "%~1"') do call :p "%%f" "%%f."
goto :eof
:p
set "pre=%~n1"
if "%pre%"=="" set "pre=%~n2"
set "name=%~1" &set "ext=%~x1"
set /a n=0 &goto :%min%
:0000000000
:000000000
call :loop 100000000 &set /a n-=100000000
:00000000
call :loop 10000000 &set /a n-=10000000
:0000000
call :loop 1000000 &set /a n-=1000000
:000000
call :loop 100000 &set /a n-=100000
:00000
call :loop 10000 &set /a n-=10000
:0000
call :loop 1000 &set /a n-=1000
:000
call :loop 100 &set /a n-=100
:00
call :loop 10 &set /a n-=10
:0
call :loop 1
title "%new%"
if "%name:~-1%"=="\" (
xcopy "%name%*" "%trg%\%new%" /i /e /k/r/h >nul
) else (
echo f| xcopy "%name%" "%trg%\%new%" /k/r/h >nul
)
goto :eof
:loop
if "%n%"=="%max%" (
echo %max% единиц в месте назначения,
echo недостаточно разрядности счётчика.
title STOP &pause >nul &exit /b 9
)
set /a n+=%1
setlocal enabledelayedexpansion
set "e=%min%%n%" &set "e=!e:~-%#%!"
endlocal &set "e=%e%"
set "new=%pre%_%e%%ext%"
if exist "%trg%\%new%" goto :loop
goto :eof
|
|
|
|
|
 |
|
Powered by phpBB © 2001, 2005 phpBB Group
|