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

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

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

vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 101 102 103 104 105 106 107 108

   

vu1tur



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

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    HW2yS

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Misha1989
    king_stiven
    спасибо

    Всего записей: 87 | Зарегистр. 21-11-2006 | Отправлено: 14:37 26-02-2011
    david141



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, как скачать rar архив из интернета с помощью bat файла и распаковать?

    Всего записей: 87 | Зарегистр. 08-11-2010 | Отправлено: 22:29 26-02-2011
    BorlandIMHO

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    david141
    GetItAndUnpack.cmd
    Код:
     
    @echo off
    REM Если не задан URL - выход
    if "%~1*" == "*" exit
    REM Папка для загрузки
    SET "DLFOLDER=%USERPROFILE%\Downloads"
    REM Папка для распаковки
    SET "UNPACKTO=%USERPROFILE%\Downloads\UNPACKED"
    REM Если папка для загрузки недоступна - выход
    pushd "%DLFOLDER%" || exit
    REM Если папка для распаковки недоступна/не существует - пытаемся создать, если создать не удаётся - выход
    pushd "%UNPACKTO%" && popd || (md "%UNPACKTO%" || exit)
    REM Загрузка, если неудачно - выход
    wget "%~1" || exit
    REM Распаковка
    unrar x -ad -- "%DLFOLDER%\%~nx1" "%UNPACKTO%\"
    popd
    exit

    Используются GNU WGET и UnRar, обе программы должны находиться в каталоге, прописанном в переменной окружения PATH.
    При запуске файла необходимо передать ему в качестве параметра URL файла (http или ftp), при тестировании использовался ftp://ftp.rarlab.com/rar/rcvtw32.rar, полностью строка запуска выглядела так: GetItAndUnpack.cmd "ftp://ftp.rarlab.com/rar/rcvtw32.rar"

    ----------
    http://www.imho.ws

    Всего записей: 2402 | Зарегистр. 12-10-2006 | Отправлено: 00:25 27-02-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    david141,
    Как вариант. Если есть утилита bitsadmin.exe, в семерке вроде из коробки, то можно закачать так:

    Код:
     
    @echo off
    setlocal
     
    set "url=%1"
    if not defined url goto:eof
     
    for %%i in (%url:/=,%) do set "file=%%~fi"
     
    bitsadmin /transfer /download /priority high %url% "%file%"
    7za x "%file%"
     

    Вызываем так:

    Код:
     
    D:\Downloads\> this.cmd www.files.org/test.rar
     


    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 08:08 27-02-2011 | Исправлено: 01MDM, 08:10 27-02-2011
    david141



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

    Всего записей: 87 | Зарегистр. 08-11-2010 | Отправлено: 11:29 27-02-2011
    sL4yer



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    как из переменной вырезать все последние символы до точки. Например из 172.0.0.10 нужно вырезать 10, а из 172.16.0.155 нужно 155.

    Всего записей: 49 | Зарегистр. 22-10-2008 | Отправлено: 14:30 27-02-2011 | Исправлено: sL4yer, 14:30 27-02-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sL4yer
    Вырезать, значит удалить из переменной? Оставишь что нужно (%%i %%j %%k %%l):

    Код:
     
    @echo off
    setlocal
     
    set "var=172.16.0.155"
    for /f "tokens=1-4 delims=." %%i in ("%var%") do set "var=%%i.%%j.%%k.%%l"
    echo %var%
     



    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:46 27-02-2011
    sL4yer



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    спасибо, всё работает

    Всего записей: 49 | Зарегистр. 22-10-2008 | Отправлено: 14:54 27-02-2011
    5peciali5t



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

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

    нереально в данном конкретном случае. лучше прибегнуть к советам из ветки из которой вы пришли (key exploit)

    Всего записей: 1472 | Зарегистр. 17-07-2009 | Отправлено: 03:25 28-02-2011
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите пожалуйста  -можно ли при помощи findstr найти совподение по 2-ум строкам ?
     
     
    есть письма с такими вот темами:

    Цитата:
    ::  Subject: Mister X wants to share their list, "My List" with you!
    ::  Subject: Mister X wants to share their list, "My List"
     with you!
    ::  Subject: Mister X wants to share their list, "My List" with
     you!


    Цитата:
     
    findstr /M /I /X /R /C:Subject: .* wants to share their wishlist, \".*\" with you!
     

    как я могу найти все эти 3 строки одной командой с использованием findstr ?
    т.е. всё сводиться к тому как заставить findstr искать нашаблон из 2-ух строк ?
     
     
     
     
     
     

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 13:33 28-02-2011 | Исправлено: slech, 13:35 28-02-2011
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slech
    А зачем? Достаточно без последних "with you!" Они, наверное, не критичны. И нужно убрать /X

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 14:39 28-02-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А как поискать с помощью findstr IP адрес вида 123.456.789.123 или значение "localhost"?

    Код:
    echo.%LocalKMSHost% | 1>nul findstr /i "[0-9] localhost"  

    Так в принципе ищет, но нечувствительно, если в IP адрес вместе с цифрами забить и буквы

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 21:27 28-02-2011
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Значит так, с сеткой дела не имел, на одном роутере сидят компы, надо сканировать, тока мой комп подключен или есть ещё хоть один? Без скачки в файл. Возможно этот другой комп вообще будет закрыт по сети, но виден по веб интерфейсу модема по адресу
    http://192.168.1.1/arpview.cmd

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 21:48 28-02-2011
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft

    Цитата:
    Так в принципе ищет, но нечувствительно, если в IP адрес вместе с цифрами забить и буквы

    Для "чувствительно" код не очень красивый.

    Код:
    findstr /i "\<[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\> localhost"

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 00:41 01-03-2011
    wolf0425



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

    Цитата:
    нечувствительно, если в IP адрес вместе с цифрами забить и буквы
    по уму надо бы не тупо на цифры или то что все эти числа не превышают 255 проверять, а пингануть этот введенный адрес...

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 07:41 01-03-2011
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужно постоянно мониторить список компов сети. Какое решение есть самое ресурсолёгкое? Утилиты можно.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 20:05 01-03-2011
    res2001



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

    Цитата:
    Нужно постоянно мониторить список компов сети. Какое решение есть самое ресурсолёгкое? Утилиты можно.

    Можно воспользоваться net view, если мелкософтовая сеть работает или пингать всю подсеть периодически, но если включены фаерволы, пинги могут быть заблокированы.
    Для борьбы с заблокированными пингами можно смотреть кэш arp: arp -a, сразу после неудачного пинга, arp виндовый фаервол по крайней мере не блокируют.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 08:52 02-03-2011
    king_stiven

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

    Цитата:
    net view

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 09:10 02-03-2011 | Исправлено: king_stiven, 09:12 02-03-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    king_stiven
    net view /?
    net view /DOMAIN:<раб.группа>
     
    Добавлено:
    king_stiven
    net view /?
    net view /DOMAIN:<раб.группа>

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 09:14 02-03-2011
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вроде то, что надо. Сначала вывести список доменов,  
    net view /domain
    потом просмотреть их на наличие компов. Спасибо.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 09:35 02-03-2011
       

    Страницы: 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 101 102 103 104 105 106 107 108

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru