2013-05-06 5 views
0

Новое для пакетного сценария. Пытаясь написать скрипт, который проверяет файлы с именем файла, начинающимся с LEND, путем опроса каталога, и если файл не получен в 17:30, напишите сообщение журнала в файл журнала. Я написал приведенный ниже пакетный скрипт, сценарий работает нормально, пока в каталоге нет файлов. Как только я помещаю файлы туда, он перестает работать. И перезапускается, если я удалю файлы из этого каталога. Не могли бы вы посоветовать, где я ошибаюсь? БлагодаряПакетный файл для проверки наличия файла на определенное время

@echo off 

set I=0 
set log=C:\logs\alerting.log 

:recurse 
for /f %%P in ('dir /b "C:\incoming\LEND*"') do (call :countfiles) 
set Time=%time:~0,5% 
echo Filecount: %I% at Time: %Time% >> %log% 
if %Time%==17:30 goto OUT 
pause 60 
goto :recurse 

:countfiles 
set /a I+=1 

:OUT 
if %I%==0 echo LEND Files not received >> %log% 
EXIT 

ответ

0

Ваш код идет от countfiles к выходу. Попробуйте это:

:countfiles 
set /a I+=1 
goto:eof 
0

Были на самом деле несколько недостатков - повторное использование переменного времени, ожидая паузы, чтобы использовать в качестве задержки, временные рамки могли быть пропущены в тесте, и другие более мелкие вещи.

Это проверяется, насколько подсчет файлов идет, но не филиал 17:30

Я изменил стиль несколько команд и имен переменных (я слишком много, как и я л и 1 во многих шрифтах)

@echo off 

set log=C:\logs\alerting.log 

:loop 
for /f %%P in ('dir /b "C:\incoming\LEND*" 2^>nul ^| find /c /v "" ') do set c=%%P 
set now=%time:~0,5% 
echo Filecount: %c% at Time: %now% 
echo Filecount: %c% at Time: %now% >> %log% 
if %now:~0,2%%now:~3,2% GTR 1730 goto :OUT 
ping -n 60 localhost >nul 
goto :loop 

:OUT 
if %c% EQU 0 echo LEND Files not received >> %log% 
EXIT 
+0

Thanks foxidrive. Я использовал ваш код, и он вообще не запускается. Я сделал небольшое изменение в своем коде и, похоже, до сих пор работал над магией: для/f %% P in ('dir/b "C: \ incoming \ LEND *"') do (установить/a I + = 1) и избавился от ": countfiles". – Rage

+0

У меня была опечатка в коде. Попробуйте сейчас - я протестировал его, и он работает здесь для подсчета файлов. Вы должны проверить филиал в 17:30 – foxidrive

Смежные вопросы