Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата Hollou:
скопировать содержимое каталога (Папка0) »
Куда конкретно скопировать?

Цитата Hollou:
всего 30 копий »
Что потом, после 30, делать?

Попробуйте так:
читать дальше »
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=E:\Песочница\0122\Source
set sDestFolder=E:\Песочница\0122\Destination
set sExcludeFolder=02

for /l %%i in (1, 1, 30) do if not exist "%sDestFolder%\Source%%i" if not defined sCount set sCount=%%i

call :GetLastPartName "%sSourceFolder%"

call :GetTemporaryName
>"%TemporaryName%" echo %sSourceFolder%\%sExcludeFolder%

xcopy.exe "%sSourceFolder%" "%sDestFolder%\%LastPartName%%sCount%\" /e /f /h /r /k /y /exclude:%TemporaryName%
mklink.exe /d "%sDestFolder%\%LastPartName%%sCount%\%sExcludeFolder%" "%sSourceFolder%\%sExcludeFolder%"

>nul del /f /q "%TemporaryName%"

endlocal
exit /b 0
rem ==========================================================================

rem ==========================================================================
:GetLastPartName
    setlocal enableextensions enabledelayedexpansion

    set sLastPart=%~nx1
    set sProcName=%~0

    endlocal & set %sProcName:~4%=%sLastPart%
    exit /b 0
rem ==========================================================================

rem ==========================================================================
rem Функция GetTemporaryName()
rem 
rem Серый форум / CMD/BAT: генерация пути для временного файла или папки
rem (http://forum.script-coding.com/viewtopic.php?id=6259)
rem ==========================================================================
:GetTemporaryName
    setlocal enableextensions enabledelayedexpansion

:NextName
    set sTempName=%temp%\temp%random%.tmp

    if exist "%sTempName%" goto :NextName

    set sProcName=%~0

    endlocal & set %sProcName:~4%=%sTempName%
    exit /b 0
rem ==========================================================================

где: «sSourceFolder» — откуда копировать («Папка0»), «sDestFolder» — куда копировать, sExcludeFolder — имя исключаемой папки («за исключением одной папки»). Поправьте на свои данные и пробуйте, не забывая, что после двенадцати часов карета превратится … после 30 запусков поведение пакетного файла будет непредсказуемым.

Отправлено: 07:44, 24-02-2012 | #2