Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 2

Модерирует : KLASS, IFkO

vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Задачи на bat-файлах (часть 1)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки
 
Полезные утилиты
 
Готовые решения и частые вопросы:
  • Встроенный справочник по командам
  • Создание помощи по всем командам консоли 2000 и XP
  • Альтернативные решения »
  • Работа с текстом, датой, и файлами »
  • Администрирование, автоматизация и сеть »
  • Работа с переменными и параметрами ком. строки »
     
    Описания работы команд и символов участниками темы:
    · setlocal enabledelayedexpansion и переменные окружения
    · символы & и && в командной строке
    · Переменная %0
     
    Невозможности — что нельзя сделать с помощью командных файлов:
    · изменть конфигурацию IP на удаленной машине (без помощи rcmd.exe) [добавил ALEF]
     
    Старая версия первого сообщения

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 16:59 14-11-2006 | Исправлено: Elroir, 04:30 26-04-2007
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka - небольшое уточнение - удаленный файл и тот файл который мы пытаемся удалить командой DEL это вообще говоря две большие разницы... Файл может быть блокирован, иметь атрибут read-only (ключик-то /F  ты опустил - видимо в целях краткости ) и т.д. и т.п. Вобщем если это все учесть и дать минимальный сервис - то как раз и выйдем по длине и сложности на пример от ViSiToR...
     


    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 14:37 09-03-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    Maza Faka
    А вы принципиально только свои посты читаете? Это правильно Но я две страницы назад еще упомянул, что del /f /s /q выводит все сама, как надо(расширения компроцессора у всех по умолчанию включены, подразумевается). Достаточно перенаправить ее вывод в файл:
    del /f /s /q folder\*.mp3 >test.log 2>&1
    и не надо разводить муть с циклами for
    Открыл один файл mp3 в папке TEST\SUB_DIR_3 плэйером, его удалить DEL не "шмогла".

    Кликнуть по картинке для увеличения... Что я делаю не так?

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 15:06 09-03-2007 | Исправлено: igor_andreev, 15:19 09-03-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    s800

    Цитата:
    как запустить bat  файла на др.машине сети?

     
    Psexec - утилита запуска заданий на удаленном компьютере
    Формат командной строки:
     
    psexec \\computer][-u user [-p psswd]][-s|-e][-i][-c [-f|-v]][-d][-][-a n,n,...>] cmd [arguments]
     
    Примеры использования:
    psexec \\PC3 program.exe - выполнить на удаленном компьютере program.exe. Выполняемая программа должна быть в путях поиска.
    psexec \\PC3 -c C:\SCRIPTS\program.exe Выполняемая программа копируется на удаленный компьютер из C:\SCRIPTS и выполняется. Скачать 139 кб

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 15:26 09-03-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
    Это я уже советовал - ему не подходит (http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&start=920,#8)
     
    FXPELIVE

    Цитата:
    Кто знает как узнать серийный номер компакт-диска и это значение сохранить в переменной %cdnum%


    Код:
     
    @echo off
    setlocal
    set "cdrom_letter=e:"
    for /f "usebackq skip=1 tokens=5" %%a in (`vol %cdrom_letter%`) do set "cdnum=%%a"
    echo %cdnum%
     

    Вместо "е:", подставляешь свою букву cdrom-a.
     
    igor_andreev

    Цитата:
    Что я делаю не так?

    Я тут как-то на форуме видел сообщение от человека: "Я тут программу написал, а она не работает. Что я делаю не так?"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:40 09-03-2007 | Исправлено: Elroir, 15:41 09-03-2007
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    igor_andreev

    Цитата:
    вы принципиально только свои посты читаете? Это правильно Но я две страницы назад еще упомянул, что del /f /s /q выводит все сама, как надо(расширения компроцессора у всех по умолчанию включены, подразумевается). Достаточно перенаправить ее вывод в файл:  
    del /f /s /q folder\*.mp3 >test.log 2>&1

    Нет, не принципиально (пишу за себя ), извени, но я не заметил этого в твоих постах (хотя почти всегда к ним присматриваюсь).
     
    А как с подобным примером записать лог с дописыванием времени каждой попытки удаления? (как в моём примере).

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 18:00 09-03-2007
    JohnRD

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    спасибо
    есть вопрос такого плана
    iKey_to_hdd.cmd

    Код:
    reg add HKLM\SOFTWARE\MDPREI\Cryptography\KeyDevices\KEYFILE /v DLL /t REG_SZ /d %SystemRoot%\system32\reader\keyfile.dll /f >>1.log
    reg add HKLM\SOFTWARE\MDPREI\Cryptography\KeyDevices\KEYFILE /v FileName /t REG_SZ /d %SystemRoot%\system32\reader\keyfile.dat /f >>1.log
    copy /y keyfile.dat %SystemRoot%\system32\reader\ >>1.log
    copy /y keyfile.dll %SystemRoot%\system32\reader\ >>1.log
    reg add HKCU\Software\MDPREI\CRYPTOGRAPHY\KEYDEVICES /v default /t REG_SZ /d KEYFILE /f >>1.log
    reg add HKCU\Software\MDPREI\CRYPTOGRAPHY\KEYDEVICES\KEYFILE /v connect /t REG_SZ /d авто /f >>1.log

    получается такой лог
    1.log

    Код:
    The operation completed successfully
     
    The operation completed successfully
    Скопировано файлов:         1.
    Скопировано файлов:         1.
     
    The operation completed successfully
     
    The operation completed successfully

    можно сделать чтобы в лог писалась сама комманда и ее результат  
     

    Цитата:
    команда /ключи >>log.txt  2>>&1
    (что есть  2>>&1)
     
    еще это у меня запускается из другого cmd
     
    start.cmd

    Код:
    call CryptoPro_reader.cmd
    call certs.cmd
    call iKey_to_hdd.cmd
    call patch_ini.cmd
    call copy_xml.cmd
    call del_sqlnet.cmd
     
     
    нельзя все логи каждого cmd (с коммандами и результатом) отдать выше в start.cmd например в файл start.log или еще выше тому кто запускает start.cmd  
     
    я запускаю это из пакета распространяемого SMS-ом на каждой машине и в логах SMS сервера вижу только один "The operation completed successfully" от start.cmd
    а если какойто cmd не отработал то все равно вижу successfully
     
    вот например если я впишу в поле запуска в пакете не start.cmd а саму команду copy c:\a.txt d:\txt то я увижу в отчетах SMS сервера и комманду и результат, ОС удаленной машины отчитается перед сервером через агента смс..  
     
    спасибо
    Евгений

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 19:21 09-03-2007 | Исправлено: JohnRD, 19:22 09-03-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR

    Цитата:
    А как с подобным примером записать лог с дописыванием времени каждой попытки удаления? (как в моём примере).
    Ну у меня mtee завсегда есть

    Код:

    del /f /s /q folder\*.mp3 | mtee /d /t /+ log.txt

    А вообще то, если честно, я бы такую ерунду на месте winvik и не логировал никак. Нельзя хранить *.mp3 - это значит нельзя, косить тупо все mp3 подряд и голову не забивать себе, сколько и каких файлов удалено. Других дел хватает
     
     
     
     
    Добавлено:
    JohnRD

    Цитата:
    можно сделать чтобы в лог писалась сама комманда и ее результат  

    Записывать команду в лог предварительно?
    Код:

    echo Try add REG_SZ KEYFILE to MDPREI\CRYPTOGRAPHY\KEYDEVICES >>1.log
    reg add HKCU\Software\MDPREI\CRYPTOGRAPHY\KEYDEVICES /v default /t REG_SZ /d KEYFILE /f >>1.log 2>>&1

     

    Цитата:
    (что есть  2>>&1)

    а попробуй:
    reg add MUMBO_YUMBO\Software /v default /t REG_SZ /d KEYFILE /f >>1.log
    reg.exe "правильная" утилита, она запишет таким макаром в лог только, если команда завершилась без ошибок.
    и попробуй  
    reg add MUMBO_YUMBO\Software /v default /t REG_SZ /d KEYFILE /f >>1.log 2>>&1
     
    С >>1.log 2>>&1 большинство тулз будут в лог писать все, и ошибки и удачное завершение операции.
     

    Цитата:
    нельзя все логи каждого cmd
    А зачем вообще столько cmd? Один универсальный  
    на все сделай

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 19:23 09-03-2007
    Korshikov_Andrey

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как из командной строки изменять владельцев объектов в Active Directory?
    Хочется чего-то вроде SetACL (setacl.sourceforge.net) для работы с AD. На сайте SetACL в Feature Requests с 2003 года значится "ACL/ACE manipulation on AD objects", но, похоже, развитие проекта остановилось...
    Оффтоп. Подскажите, может быть можно сменить всех владельцев у всех объектов AD, пусть и без командной строки?

    Всего записей: 30 | Зарегистр. 24-08-2004 | Отправлено: 14:53 10-03-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Korshikov_Andrey
    http://forum.ru-board.com/forum.cgi?action=filter&forum=8&filterby=topictitle&word=Active+Directory
    в Администрировании наверное быстрей ответят

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 15:40 10-03-2007
    SERG10

    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Помогите с задачей A+B=C
     
    Где А:
    Комп: Windows Server 2003
    Права: Администратор
    На компе: 2 расшареные папки "X" "Y"
    Active Derictory: 2 группы (бухгалтерия кадры) (в каждой группе по несколько человек)
     
    Где С (это то что нужно получить)
    Нужно на диске X и Y получить папки бухгалтерия и кадры и в каждой из них получить папки с фамилиями сотрудников соответсвующие своим отделам. А только на диске Y в папке каждого сотрудника создать папку личная, и дать права на доступ к этой папке только этого сотрудника (без администраторов локальных и доменных).
    Ну и самое сложное, что даже в теории мне было трудно продумать: как сделать работу этого бат файла или скрипта vbs автоматизированным, чтобы при появлении нового сотрудника можно было прогнать этот скрипт и но создал папки только для него.
     
    Ну про В говорить не стоит, ведь всем понятно что это Вы и ваши зания.
     
    Заранее благодарен, и огромная просьба, если Вы в состоянии решить хоть кусочек от этой задачи - отпишитесь!

    Всего записей: 1 | Зарегистр. 09-03-2007 | Отправлено: 10:45 11-03-2007
    winvik



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем спасибо за помощь!!
    Вот что получилось у меня в итоге с задачей удаления MP3шек:
     
    chcp 1251 > nul
    cd d:\test
    Set Ext=*.mp3, *.avi, *.wav
    del /f /s /q %Ext% >>test.log 2>&1
     
    А как бы теперь сделать чтобы при каждом запуске скрипта создавался новый лог-файл? Неважно с каким именем, можно вместо имени дату, можно log1,log2,3 ... ?
     
    to igor_andreev: логи начальство желает видеть...

    Всего записей: 10 | Зарегистр. 07-03-2007 | Отправлено: 11:31 11-03-2007
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    winvik

    Цитата:
    сделать чтобы при каждом запуске скрипта создавался новый лог-файл? Неважно с каким именем, можно вместо имени дату, можно log1,log2,3 ... ?

    Если неважно имя то можно в начале батника поставить это:
     

    Код:
    echo > test.log

     
    Если нужно чтобы файл писался с последовательностью чисел на конце, то вот пример (он есть и в шапке):
     

    Код:
    chcp 1251 > nul
    cd d:\test
    Set Ext=*.mp3, *.avi, *.wav
     
    Set LogFile=Test.log
    Set Num=1
     
    :Loop
    If Not Exist %LogFile% Goto EndLoop
    For %%a In (%LogFile%) Do (
    Set FName=%%~na
    Set FExt=%%~xa)
    Set NewFName=%FName%_%Num%%FExt%
    Set /a Num=%Num% + 1
    (If Exist %NewFName% Goto Loop) && (Set NewFName=%NewFName%)
    Set LogFile=%NewFName%
    :EndLoop
     
    del /f /s /q %Ext% >>%LogFile% 2>&1



    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 12:20 11-03-2007
    winvik



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    ViSiToR

    при первом запуске у меня создался файл test.log, при втором - просто test без расширения... при последующих запусках скрипта весь лог пишется в последний файл (дописывается в конец).
    ?
     
    Добавлено:
    извиняюсь )) пробелы надо было убрать в конце строк )) все работает )) спасибо еще раз ))

    Всего записей: 10 | Зарегистр. 07-03-2007 | Отправлено: 13:30 11-03-2007
    winvik



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В итоге решено было таки логировать все в один файл, но с указанием даты и времени удаления. Вот что получилось:
     
    chcp 1251 > nul
    cd d:\test
    Echo ^______________________^ >>log.txt
    Echo %Date%^>^> %Time:~0,-3%^>^> >>log.txt
    Set Ext=*.mp3, *.avi, *.wav, *.vob, *.mpeg, *.mpg, *.wma
    del /f /s /q %Ext% >>d:\test\log.txt 2>&1
     
    Выдает это чудо лог такого вида:
    ______________________  
    12.03.2007>> 10:28:12>>  
    Не удается найти D:\test\*.mp3
    ______________________  
    12.03.2007>> 10:34:48>>  
    Удален файл - D:\test\juanes_-_la_camisa_negra.mp3
     
    Правда в лог пишется время старта скрипта, а не фактическое время удаления каждого файла, но это мелочи )) Скрипт пробегает по папкам довольно шустро... Еще раз всем спасибо за участие )))

    Всего записей: 10 | Зарегистр. 07-03-2007 | Отправлено: 07:54 12-03-2007
    JohnRD

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev большое спасибо за помощь
     
    подскажите пожалуйста gsar может читать и менять
    1.ini

    Код:
    SecuritySystem=1
    WorkflowSystem=-
    ExchangeSystem=-
    ExchangeFile=-
    iKeyLogOn=-
    .........

     
    type 1.ini|gsar -s"iKeyLogOn=-" -r"iKeyLogOn=+" -F >2.ini
    а как проверить если есть iKeyLogOn=- то заменить на iKeyLogOn=+, если нет то все равно вставить iKeyLogOn=+ например в 5 строку но ничего не удаляя
     
    спасибо  
    Евгений
     
     

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 19:38 12-03-2007 | Исправлено: JohnRD, 19:49 12-03-2007
    Tipulatoid



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JohnRD
    Вот так без использования сторонних утилит. Может и покороче можно код написать - как умею
     

    Код:
    @echo off
    setlocal enabledelayedexpansion
    set "file=1.ini"
     
    find /n "iKeyLogOn=" %file% > nul & if errorlevel 1 goto insert
     
    for /f "delims=[]" %%a in ('find /n "iKeyLogOn=" %file%') do set num_line=%%a
     
    set counter=1
    for /f "tokens=2 delims==" %%a in (%file%) do (
       if /i !counter!==%num_line% (
          set znak=%%a)
       set /a counter=!counter!+1)
     
    if /i %znak%==+ goto end
     
    del /q tmp_file 2>nul
    set counter=1
    for /f "tokens=*" %%a in (%file%) do (
       if /i !counter!==%num_line% (echo iKeyLogOn=+>>tmp_file
    ) else (
       echo %%a>>tmp_file)
       set /a counter=!counter!+1)
     
    del /q %file% 2>nul
    ren tmp_file %file%
    goto end
     
    :insert
    del /q head.del 2>nul
    del /q bottom.del 2>nul
     
    set counter=1
    for /f "tokens=*" %%a in (%file%) do (
       if /i !counter! leq 4 (echo %%a>>head.del
    ) else (
       echo %%a>>bottom.del)
       set /a counter=!counter!+1)
     
    del /q %file% 2>nul
    type head.del> %file%
    echo iKeyLogOn=+>> %file%
    type bottom.del>>%file%
     
    del /q head.del 2>nul
    del /q bottom.del 2>nul
     
    :end

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 21:24 12-03-2007
    Smitis



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    JohnRD
    Это принципиально вставить в 5-ю строку? Если нет:

    Код:
     
    type 1.ini |find /i "iKeyLogOn=+" || echo iKeyLogOn=->>1.ini
    type 1.ini|gsar -s"iKeyLogOn=-" -r"iKeyLogOn=+" -F >2.ini
     


    Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 21:37 12-03-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Smitis
    Но у тебя же первая строка ищет именно то, что надо("iKeyLogOn=+")! Логичней сделать в первой строчке тогда уже после удачного завершения find /i "iKeyLogOn=+" && exit /b. Ну или не exit /b, а переход на нужную метку.
    В общем, я бы так делал:

    Код:
     
    @ECHO OFF
     
    TYPE 1.INI | FIND /I "iKeyLogOn=+" && (ECHO iKeyLogOn Plus, all OK & EXIT /B)  
     
    TYPE 1.INI | FIND /I "iKeyLogOn=-" && (TYPE 1.INI | GSAR -s"iKeyLogOn=-" -r"iKeyLogOn=+" -F >2.INI & EXIT /B)
     
    ADDLINE iKeyLogOn=+ 5 1.INI
     

    Первая строчка(@ECHO OFF не считается) ищет iKeyLogOn=+, если находит - значит все в порядке, выходим или переходим на другую метку батника.
     
    Если iKeyLogOn=+ в INI-файле нет, значит вторая строчка ищет iKeyLogOn=-, если находим - GSAR меняет его на iKeyLogOn=+ и опять выход из батника или переход, куда надо.
     
    Если не нашли ничегошеньки - ну чеж делать , добавляем на пятую строку в 1.INI параметр iKeyLogOn=+. Старый 1.INI при этом сбэкапится, как c:\old.txt, закидон такой у addline.exe
     
    ADDLINE весит 6 Кб в архиве http://www.jsifaq.com/SF/Tips/Tip.aspx?id=8033

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 22:57 12-03-2007 | Исправлено: igor_andreev, 23:02 12-03-2007
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    winvik

    Цитата:
    Правда в лог пишется время старта скрипта, а не фактическое время удаления каждого файла

    А я придлагал вариант где пишется время конкретного исполнения команды Dir (см. пару страниц назад).


    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 23:07 12-03-2007
    Smitis



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    igor_andreev
    Ну, в программировании всегда одно и то же можно сделать разными способами. Я выбрал короткий (в смысле, количества букв ). К тому же, у автора не всё понятно. Например, нужно ли создавать 2.ini всегда или нет. Я специально сделал так, что бы создавался всегда.
    П.С.
    Хотя есть у меня одна неточность... Ну и фиг с ней.

    Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 23:43 12-03-2007 | Исправлено: Smitis, 23:54 12-03-2007
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 2
    vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru