Пробуйте:
читать дальше »
Код:
Код: Выделить всё
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=C:\SCAN
set sDestFolder=Q:\
set sBackupFolder=C:\SCAN\BACK
set sLogFile=%sBackupFolder%\Log.log
call :GetTemporaryName
if not exist "%sSourceFolder%\." (
echo Can't find source folder [%sSourceFolder%].
exit /b 1
)
if not exist "%sDestFolder%\." (
echo Can't find destination folder [%sDestFolder%].
exit /b 2
)
if not exist "%sBackupFolder%\." (
echo Can't find folder for backup [%sBackupFolder%].
exit /b 3
)
>>"sLogFile%" (
echo Start transfer at %date% %time%
for %%i in ("%sSourceFolder%\*.txt") do (
set sCurrFileName=%%~ni
>"%TemporaryName%" echo !sCurrFileName:-doc1=!
>nul copy /b /y "%TemporaryName%"+"%%~i" "%sDestFolder%\%%~nxi"
>nul copy /b /y "%TemporaryName%"+"%%~i" "%sBackupFolder%\%%~nxi"
echo %%~nxi
del /f /q "%%~i"
)
echo Finish transfer at %date% %time%
echo.
)
del /f /q "%TemporaryName%"
endlocal
exit /b 0
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 ==========================================================================
Многое переделал.