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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Seryoga204



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

    Код:
    @echo off
    chcp 1251>nul
    FindStr /BRC:"Вход" /C:"Выход" *.* >1.txt
     

     но 1.txt пустой

    Всего записей: 251 | Зарегистр. 10-05-2009 | Отправлено: 20:54 10-07-2011 | Исправлено: Seryoga204, 21:46 10-07-2011
    NIKZZZZ



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

    Цитата:
    Пробывал так

    chcp 1251 не поможет, нужно просто написать сам батник в  кодировке 1251.
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 09:03 11-07-2011
    zzz247

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здавствуйте. Нужен батник который запускал бы из командной строки следующие команды arp -d,  ipconfig /release и ipconfig /renew
    начало прописал:
    @ECHO OFF
    start /MAX cmd.exe
     
    stop
    а как дальше прописывать не знаю.

    Всего записей: 2 | Зарегистр. 11-07-2011 | Отправлено: 09:54 11-07-2011
    wolf0425



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

    Код:
    @ECHO OFF
    arp -d
    ipconfig /release
    ipconfig /renew
    pause
    exit

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:30 11-07-2011 | Исправлено: wolf0425, 10:31 11-07-2011
    zzz247

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425 спасибо.
    А есть возможность запускать все это в определенные дни недели и определенное время, если этот батник в автозагрузку кинуть. Как это нужно прописать в батнике?

    Всего записей: 2 | Зарегистр. 11-07-2011 | Отправлено: 10:47 11-07-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    zzz247 10:47 11-07-2011
    Цитата:
    Как это нужно прописать в батнике?

     
    В батнике никак. Запускай сценарий из планировщика


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

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 11:49 11-07-2011
    wolf0425



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

    Цитата:
    В батнике никак. Запускай сценарий из планировщика  
    не то чтоб совсем никак - только смысла извращаться нет, планировщик настроить действительно и проще и полезнее.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:07 11-07-2011 | Исправлено: wolf0425, 12:08 11-07-2011
    Seryoga204



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

    Цитата:
    Seryoga204  
     
    Цитата: Пробывал так  
     
     
     chcp 1251 не поможет, нужно просто написать сам батник в  кодировке 1251.

     
    И так пробывал, не помогает.
     

    Всего записей: 251 | Зарегистр. 10-05-2009 | Отправлено: 19:56 11-07-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Seryoga204
    Подозреваю, что это баг:

    Код:
     
    @echo off
     
    findstr /b "вход"  1.txt
    findstr /b "выход" 1.txt
    findstr /b "йцукен" 1.txt
    findstr /b "фыва" 1.txt
     

     
    Батник в cp1251. При этом "вход" и "йцукен" находит, а "выход" и "фыва" нет =)). Что-то видать не дружит с "ы". На win-7, на XP кажется такого не было.

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

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:47 11-07-2011
    smirnvlad

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    на XP тоже не дружит с "ы" и c "В", но работает если текст в файле
     
    Seryoga204
    батник в win1251 кодировке

    Код:
     
    set "file=%~nx0.tmp.%random%.%random%.tmp"
     
    echo.Вход>%file%
    echo.Выход>>%file%
     
    FindStr /B /G:%file% *.* >1.txt
     
    del %file%
     

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 22:28 11-07-2011
    VitGT

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, как реализовать такой батник чтобы перейдя по ссылке http://releases.mozilla.org/pub/mozilla.org/addons/1865/ скачивался последний добавленный файл?
    Вот чтото сам набросал, но он скачивает тупо по имени файл  

    Код:
    @ECHO OFF
    COLOR 1F
    CLS
    echo OPEN releases.mozilla.org>MYFTP.txt
    echo ANONYMOUS>>MYFTP.txt
    echo 123>>MYFTP.txt
    echo BELL>>MYFTP.txt
    echo CD pub>>MYFTP.txt
    echo CD mozilla.org>>MYFTP.txt
    echo CD addons>>MYFTP.txt
    echo CD 1865>>MYFTP.txt
    echo binary>>MYFTP.txt
    echo get "adblock_plus-1.3.9-fx+tb+sm+fn.xpi">>MYFTP.txt
    echo quit>>MYFTP.txt
    ftp -s:myftp.txt
    del myftp.txt
    ping -n 3 localhost>Nul

    Всего записей: 18 | Зарегистр. 12-07-2007 | Отправлено: 02:33 12-07-2011
    wolf0425



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

    Код:
    @echo off
    for /f "delims=" %%a in (' wget -q http://releases.mozilla.org/pub/mozilla.org/addons/1865/ -O - ^| sed -n -r "s;^.*a href=\x22(adblock[^\x22]*)\x22.*$;\1;igp" ') do set "filename=%%a"
    wget http://releases.mozilla.org/pub/mozilla.org/addons/1865/%filename%  
     

    wget и sed - в шапке или яндексе
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 08:46 12-07-2011 | Исправлено: wolf0425, 10:36 12-07-2011
    VitGT

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    У меня почему то вместо нужного файла скачивается файл index.html.
    Хотелось бы всё это реализовать без сторонних утилит.
    И еще, если можно, добавить пару действий, таких как, при скачивании новых файлов чтобы удалялись старые, а если новых файлов нет на сервере то скачивание не происходило

    Всего записей: 18 | Зарегистр. 12-07-2007 | Отправлено: 09:30 12-07-2011
    wolf0425



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

    Цитата:
    У меня почему то вместо нужного файла скачивается файл index.html
    это тебе так не повезло - на запрос http://releases.mozilla.org/pub/mozilla.org/addons/1865/ ответил не тот сервер, который отвечал мне при тестировании.
    поправил.
     

    Цитата:
    Хотелось бы всё это реализовать без сторонних утилит.  
    да я не против, реализуй
    в принципе, вариант скачки по ftp действительно можно сделать целиком на встроенных утилитах виндов.
    Только вот размером он будет не в  две строки, а в пару экранов  и писать его можно только при наличии интереса.
    Так что если заняться нечем - открываешь версию для печати, ищешь по ней примеры скриптов ftp: чтение каталога, разбор листинга и скачка нужного файла - по частям точно где-то уже были.
     

    Цитата:
    И еще, если можно, добавить пару действий, таких как, при скачивании новых файлов чтобы удалялись старые, а если новых файлов нет на сервере то скачивание не происходило  
    это можно, первый фикс тоже включен.

    Код:
    @echo off
    for /f "delims=" %%a in (' wget -q http://releases.mozilla.org/pub/mozilla.org/addons/1865/ -O - ^| sed -n -r "s;^.*a href=\x22(adblock[^\x22]*)\x22.*$;\1;igp" ') do set "filename=%%a"
    if "%filename%" neq "" if not exist "%filename%" wget http://releases.mozilla.org/pub/mozilla.org/addons/1865/%filename%
    for /f "skip=1 delims=" %%a in (' dir /b /o-n "adblock_plus*.xpi" ') do del /q "%%~a

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:50 12-07-2011 | Исправлено: wolf0425, 19:26 12-07-2011
    VitGT

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

    Цитата:
    это тебе так не повезло - на запрос http://releases.mozilla.org/pub/mozilla.org/addons/1865/ ответил не тот сервер, который отвечал мне при тестировании.
    поправил.

    Странно как то, уже десятый раз запускаю батник, а оно мне уже не заменяет файл index.html, а добавляет такой же только с другим именем index.html.1, index.html.2, index.html.3, index.html.4 и т.д. когда же мне повезет


    Цитата:
    да я не против, реализуй

    Обязательно найду время и реализую такой скриптик

    Цитата:
    это можно, первый фикс тоже включен.  

    Толи с кодом чтото не то или с сервером

    Всего записей: 18 | Зарегистр. 12-07-2007 | Отправлено: 13:51 12-07-2011 | Исправлено: VitGT, 13:52 12-07-2011
    wolf0425



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

    а прочитать первую строчку своего принтскрина  - ты самостоятельно совсем никак не мог?
    У тебя батник не находит sed.exe.
     
     
    проверку на ненахождение в первой закачке подходящей ссылки - добавил.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 19:14 12-07-2011 | Исправлено: wolf0425, 19:28 12-07-2011
    VitGT

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

    Цитата:
    а прочитать первую строчку своего принтскрина  - ты самостоятельно совсем никак не мог?
    У тебя батник не находит sed.exe.  

    Уже прочитал, не заметил просто, всё работает, спасибо
    Но есть еще проблемы, когда скачиваю несколько дополнений некоторые попадаются старые версии, например должно качать download_statusbar-0.9.8-fx.xpi, а оно качает то что в конце строки такой файл download statusbar-0.9.4.6-firefox.xpi, тоже самое и с tab_mix_plus-0.3.8.6-fx.xpi вместо него качается tab_mix_plus-0.3.8.6pre.110303a-fx.xpi
    И еще если можна последнее, если такое возможно, хотелось что бы ссылки по которым скачивалось дополнение помещались в отдельном текстовом файле и от туда же считывались, так я думаю удобнее будет чем в батнике прописывать каждый раз.
    Вот такие ссылки будут например в addons.txt

    Код:
    http://releases.mozilla.org/pub/mozilla.org/addons/1865/
    http://releases.mozilla.org/pub/mozilla.org/addons/26/
    http://releases.mozilla.org/pub/mozilla.org/addons/1122/
    http://releases.mozilla.org/pub/mozilla.org/addons/3006/
    http://releases.mozilla.org/pub/mozilla.org/addons/1843/
    http://releases.mozilla.org/pub/mozilla.org/addons/748/
    ...

     
    Вот с этими дополнениями проблемы, скачиваются старые версии  

    Код:
    @echo off
    for /f "delims=" %%a in (' wget -q http://releases.mozilla.org/pub/mozilla.org/addons/26/ -O - ^| sed -n -r "s;^.*a href=\x22(download[^\x22]*)\x22.*$;\1;igp" ') do set "filename=%%a"
    if "%filename%" neq "" if not exist "%filename%" wget http://releases.mozilla.org/pub/mozilla.org/addons/26/%filename%
    for /f "skip=1 delims=" %%a in (' dir /b /o-n "download_statusbar*.xpi" ') do del /q "%%~a
    for /f "delims=" %%a in (' wget -q http://releases.mozilla.org/pub/mozilla.org/addons/1122/ -O - ^| sed -n -r "s;^.*a href=\x22(tab[^\x22]*)\x22.*$;\1;igp" ') do set "filename=%%a"
    if "%filename%" neq "" if not exist "%filename%" wget http://releases.mozilla.org/pub/mozilla.org/addons/1122/%filename%
    for /f "skip=1 delims=" %%a in (' dir /b /o-n "tab_mix*.xpi" ') do del /q "%%~a

     
    Спасибо огромное что помогаете !

    Всего записей: 18 | Зарегистр. 12-07-2007 | Отправлено: 21:47 12-07-2011 | Исправлено: VitGT, 22:51 12-07-2011
    wolf0425



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

    Цитата:
    Вот с этими дополнениями проблемы, скачиваются старые версии  
    там ссылка на последнюю версию - почему-то не последняя на странице. и лишний мусор перед ссылкой. сортируем сами и дорабатываем.
     

    Код:
    for /f "delims=" %%a in (' wget -q http://releases.mozilla.org/pub/mozilla.org/addons/26/ -O - ^| sed -n -r "s;^.*href=\x22([^\x22]*\.xpi)\x22.*$;\1;igp" ^| sort  ') do set "filename=%%a"  
    wget http://releases.mozilla.org/pub/mozilla.org/addons/26/%filename%
     

     
    Добавлено:

    Цитата:
    Вот такие ссылки будут например в addons.txt  
    кроме ссылок надо бы начало имени, для поиска.
     хотя можно и обойтись - вместо начала имени можно же ловить расширение, оно общее у всех.
    а так - читаешь файл через for /f и загоняешь строку как парамер(ы) в скачивальщик, оформленный как исполняемая часть for или как подпрограмма. Без контроля ошибок это так:

    Код:
    @echo off
    for /f "delims=" %%i in ( addons.txt ) do  call :download "%%~i"
    exit
     
    :download "%%~i"
    echo.download %1
    for /f "delims=" %%a in (' wget -q "%~1" -O - ^| sed -n -r "s;^.*href=\x22([^\x22]*\.xpi)\x22.*$;\1;igp" ^| sort ') do set "filename=%%~a"
    echo.file %~1%filename%
    wget "%~1%filename%"
    set "filename="
    exit /b
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 22:01 12-07-2011 | Исправлено: wolf0425, 13:38 13-07-2011
    Sphinx114



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Заранее извиняюсь за тупость, но... Как максимально короткой командой удалить файл с любым атрибутом. Или это только так:

    Код:
    del file /a:r & del file /a:a & del file /a:s & del file /a:h

    Всего записей: 1201 | Зарегистр. 26-03-2011 | Отправлено: 23:31 13-07-2011
    wolf0425



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

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 23:56 13-07-2011 | Исправлено: wolf0425, 08:48 14-07-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