![]() |
Не могу найти ошибку
Такая задача: нужно скопировать файлы созданные в четверг или пятницу прошлого года с диска С на E. Не работает. Причем во внутренний цикл не передается переменная DoW и NN не хочет устанавливаться. ПОМОГИТЕ исправить ошибку, пожалуйста
@ECHO OFF ECHO. CLS for /r C:\ %%A in (*.*) do ( @for /F "eol= skip=5 tokens=1-3 delims=." %%B IN ('DIR "%%A"') DO ( @for /F "tokens=1" %%E IN ('echo "%%D"') DO ( IF %iDate%==0 CALL :DoW %%C %%B %%E IF %iDate%==1 CALL :DoW %%B %%C %%E IF %iDate%==2 CALL :DoW %%E %%C %%B rem Определяем текущий день недели по готовому алгоритму SET NN=%%E SET /A Day=4 SET /A Run=0 rem Устанавливаем запуск по четвергам и пятницам IF "%Day%"=="4" SET /A Run=1 IF "%Day%"=="5" SET /A Run=1 IF not "%NN%"=="%YYear%" SET /A Run=0 echo %%A %%B %%C %Day% %Run% %YYear% %NN% IF "%Run%"=="1" xcopy %%A E:\ ) ) ) GOTO:EOF :: алгоритм вычисления дня недели прошлого года :DoW SET /A Data=%1 SET /A Month=%2 SET /A Year=%3 IF %Month% GTR 2 (SET /A Month=%Month%-3) ELSE (SET /A Year=%Year%-1 & SET /A Month=%Month%+9) SET /A ta=146097*((%Year%) /100)/4 SET /A tb=1461*(%Year% %% 100)/4 SET /A tc=(153*%Month%+2)/5+%Data%+1721119 SET /A DoW = (%ta%+%tb%+%tc%) %% 7 + 1 SET DoW=%DoW% GOTO:EOF |
Цитата:
|
Время: 01:59. |
Время: 01:59.
© OSzone.net 2001-