Войти

Показать полную графическую версию : [решено] вывод ошибки при запуске bat-файла


DaTais
16-04-2013, 11:04
Добрый день!
я запускаю батник для копирования двух папок
@Echo Off
:: Параметры скрипта, 0 < $OLD < 29!
:: $OLD - столько ДНЕЙ храним архивы
Set $SRC=C:\Bases
set $SRC1=C:\Mazda
Set $DST=C:\End
Set $OLD=29

:: Находим текущие день/месяц/год
For /F "Tokens=1 Delims=." %%i In ('WMIC OS Get LocalDateTime^|Find "."') Do Set $Time=%%i
Set $Y=%$Time:~0,4%&Set $M=0%$Time:~4,2%&Set $D=0%$Time:~6,2%
Set $M=%$M:~-2%&Set $D=%$D:~-2%


:: Создаем каталог/делаем архив
XCopy %$SRC%\* %$DST%\%$D%.%$M%.%$Y:~-2%\ >>C:\log.log
XCopy %$SRC1%\* %$DST%\%$D%.%$M%.%$Y:~-2%\ >>C:\log.log

:: Удаляем старые архивные каталоги
Call :GetOldDate %$OLD%
For /F "Tokens=1-3 Delims=." %%i In ('DIR /B/A:D %$DST%\??.??.??') Do If %%k%%j%%i LEQ %$Y:~-2%%$M%%$D% RD /S/Q "%$DST%\%%i.%%j.%%k"

EXIT

:GetOldDate
:: -----------------------------------
:: Расчет даты, предшествующей текущей
:: заданное количество дней (< 29)
:: -----------------------------------

Set /A $D -= %1
If %$D% GTR 0 GoTo GetOldDate_2

:: Месяц, год, дней в месяце
Set /A $M=%$M%+11-((%$M%+10)/12)*12
If %$M% EQU 12 Set /A $Y-=1
For /F "Tokens=%$M%" %%i In ("31 28 31 30 31 30 31 31 30 31 30 31") Do Set $X=%%i
If %$M% NEQ 2 GoTo GetOldDate_1

:: Февраль високосного года
Set /A $B1=%$Y%-(%$Y%/4)*4
Set /A $B2=%$Y%-(%$Y%/100)*100
Set /A $B3=%$Y%-(%$Y%/400)*400
If 0 EQU %$B1% If 0 NEQ %$B2% Set /A $X+=1
If 0 EQU %$B3% Set /A $X+=1

:: День месяца
:GetOldDate_1
Set /A $D=%$D%+%$X%-((%$D%+%$X%-1)/%$X%)*%$X%

:: Форматирование даты
:GetOldDate_2
Set $M=0%$M%&Set $D=0%$D%
Set $M=%$M:~-2%&Set $D=%$D:~-2%


все прекрасно работает.Спасибо, кстати, форуму за батник))
вопрос в следующем - при запуске может возникать ошибка, что не хватает прав - на машине с очень урезанными правами пользователя. На этой машине нет фара и его не установить. Каак мне увидеть ошибку??

deviance
16-04-2013, 11:10
DaTais, cmd.exe /K xxx.bat
В код Вашего скрипта стоит вставить проверки переменной %ErrorLevel%.

DaTais
16-04-2013, 12:59
спасибо, добавила, хоть окно теперь не закрывается)




© OSzone.net 2001-2012