Перейти к содержимому

Фотография

Написания скриптов для *.bat (windows Xp)

- - - - -

  • Авторизуйтесь для ответа в теме

#1
6yka

Отправлено 29 ������ 2009 - 02:47

6yka

    Новоприбывший

  • Пользователи
  • 22 сообщений
Хочу сделать скрипт который будет подсчитывать контрольные сумы файлов, в том числе и файлов расположенных в поддиректориях.

Сначала формируется файл содержащий все файлы в поддиректориях, после чего происходит выполнения программы md5.exe котороя просчитывает контрольные суммы файлов и записывает их в файл. Нашел похожий пример:
Код
echo off
dir /a:d /b > dir.txt
for /f "tokens=1" %%i in (dir.txt) do (
cd %%i
call :dodate %%i %1
cd ..
)
del dir.txt
goto :eof

:dodate
rem входим в папку
cd %2 >
set e1=%errorlevel%
if [%e1%]==[0] (
rem если удачно, строим список файлов
rem формат вывода подбереь сам
dir /b *.%1 > ..\file.txt

for /f "tokens=1" %%i in (..\file.txt) do (
rem печать
call твой_скрипт %%i
)
del ..\file.txt
cd ..
)

goto :eof


Нашел пример скрипта для перебора поддиректорий, правда он ищет только поддиректории 1го уровня(если несложно, прокомментируйте всю программу построчно). Полностью с синтаксисом не разобрался ибо все мануалы на английском, я в нем не силен. Нужно сделать что бы поиск проводился на произвольную глубину дерева директорий и прикрутить считывание/проверку контрольной сумы.



В принципе всю программу комментировать не надо, я не понял только значения строчек

Код
for /f "tokens=1" %%i in (dir.txt) do (
cd %%i
call :dodate %%i %1

....

set e1=%errorlevel%
if [%e1%]==[0] (
....
errorlevel – это ответ предыдущей функции, почему он должен быть равен 0?


#2
SCobraT

Отправлено 11 ��� 2009 - 11:24

SCobraT

    Свояк

  • Пользователи
  • 168 сообщений
Народ, а можно написать, такой скрипт, что при включении компа будет он постоянно перезагружаться или, что нибудь типо в этом роде?

#3
canavarro

Отправлено 14 ��� 2009 - 02:53

canavarro

    Новоприбывший

  • Пользователи
  • 26 сообщений
shutdown -r -t 0
Создай батник и засунь в автозагрузку

#4
froska86

Отправлено 12 ���� 2009 - 10:25

froska86

    Начинающий

  • Пользователи
  • 138 сообщений
errorlevel=0 означает, что в процессе выполнения ошибок не возникло.
Если не ноль - были ошибки, а значит, правильного результата не будет

#5
FreeDreamer

Отправлено 19 ���� 2009 - 09:31

FreeDreamer

    Начинающий

  • Пользователи
  • 89 сообщений
А кто знает как эти скрипты работают на разных версиях виндоуса? На висте пашут?

#6
Vienna91

Отправлено 03 ������� 2009 - 05:59

Vienna91

    Новоприбывший

  • Пользователи
  • 10 сообщений
как сделать пауза функции

@echo off
verify on
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo ошибка функция таймер...

echo жди 10сек.
set /a paused=%time:~7,-3%+5
if %paused% GEQ 10 set /a paused=!paused!-10
:check
set /a ttt=%time:~7,-3%
if not %paused%==%ttt% goto :check

Сообщение отредактировал Vienna91: 03 ������� 2009 - 06:00


#7
NEXTIK

Отправлено 15 ������ 2010 - 04:39

NEXTIK

    Web-мастер

  • Пользователи
  • 154 сообщений
Написал собственный батник, который ворует указаные файлы на флешку, при этом архивируя на комп, а потом и удаление)))

#8
PROFESSIONAL

Отправлено 15 ������ 2010 - 07:38

PROFESSIONAL

    Профессионал

  • Неактивированные
  • 585 сообщений
Цитата(FreeDreamer @ Jun 19 2009, 21:31) <{POST_SNAPBACK}>
А кто знает как эти скрипты работают на разных версиях виндоуса? На висте пашут?

Отлично....не рекомендую проверять на своём, потому-что из-за дефектов полетит всё.......

#9
PROFESSIONAL

Отправлено 15 ������ 2010 - 07:40

PROFESSIONAL

    Профессионал

  • Неактивированные
  • 585 сообщений
Цитата(FreeDreamer @ Jun 19 2009, 21:31) <{POST_SNAPBACK}>
А кто знает как эти скрипты работают на разных версиях виндоуса? На висте пашут?

Отлично....не рекомендую проверять на своём, потому-что из-за дефектов полетит всё.......