Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Не могу найти ошибку

Ответить
Настройки темы
CMD/BAT - Не могу найти ошибку

Новый участник


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

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


Такая задача: нужно скопировать файлы созданные в четверг или пятницу прошлого года с диска С на 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

Отправлено: 14:22, 28-01-2010

 

Googler


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

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


Цитата Dremuk:
во внутренний цикл не передается переменная DoW и NN не хочет устанавливаться »
Как будто скрипт "сшит" из разных кусков, которые не подогнали друг к дружке - например, переменная iDate используется, но значение ей нигде не присваивается, а должно считываться из реестра... и по ходу тут не одна ошибка... да и файлы копируются не с "диска", как указано, а всего с одного каталога (текущего)... Для начала, оформите свой топик согласно правилам (п.2.7), заключите код в теги [code] и конкретизируйте задачу (часто из-за одной неточности в формулировке приходится переписывать весь батник)

Отправлено: 15:35, 28-01-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Не могу найти ошибку

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Обработка массивов данных, программа на паскале. Не могу найти ошибку в программе yulia_hoi Программирование и базы данных 6 08-01-2010 14:50
Помогите найти ошибку в скрипте Anarasius AutoIt 4 03-01-2010 21:38
CMD/BAT - [решено] Помогите найти ошибку ofcoss Скриптовые языки администрирования Windows 7 21-07-2009 17:40
C/C++ - Помогите найти ошибку KEKS-KEKS Программирование и базы данных 9 01-11-2007 20:30
JavaScript, не могу найти ошибку modem Вебмастеру 3 01-03-2005 15:08




 
Переход