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

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

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

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 109 110 111 112 113 114 115 116 117

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    01MDM



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

    Код:
     
    @echo off
    pushd "%windir%\system32\drivers\etc"
    if not exist ~hosts copy hosts ~hosts
    popd
     

    2:

    Код:
     
    @echo off
    pushd "%windir%\system32\drivers\etc"
    if exist ~hosts copy /y ~hosts hosts
    popd
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:34 10-08-2009
    ortoror

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

    Цитата:
    @echo off
    pushd "%windir%\system32\drivers\etc"
    if not exist ~hosts copy hosts ~hosts
    popd  

    на это пишет
    "hosts
    Не удается найти указанный файл
    Скопировано файлов:          0."
    ----------------------------------------------------
    прошу прощения. все само собой снова заработало

    Всего записей: 2 | Зарегистр. 10-08-2009 | Отправлено: 20:26 10-08-2009 | Исправлено: ortoror, 20:32 10-08-2009
    Serhi84

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите ,как изменить часть имени файла? То есть к примеру в папке есть файлы с именем EJxxxx, необходимо изменить имена на ELxxxx ( в имени поменять J на L) и к измененному имени добавить текущую дату.
     
    чувствую как то через % %%~ni:EJ=EL % делается, но не получается...

    Всего записей: 45 | Зарегистр. 31-01-2008 | Отправлено: 10:57 11-08-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Serhi84
    Либо выноси за пределы цикла, либо назначай переменную в самом цикле:
    1:

    Код:
     
    @echo off
    setlocal
    for /f "tokens=*" %%i in ('dir /b EJ*') do call:rename "%%i"
    goto:eof
     
    :rename
    set "file=%~1"
    ren %1 "%file:EJ=EL%"
     

    2:

    Код:
     
    @echo off
    setlocal enabledelayedexpansion
    for /f "tokens=*" %%i in ('dir /b EJ*') do (
        set "file=%%i"
        ren %%i "!file:EJ=EL!"
    )
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:10 11-08-2009
    wolf0425



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

    Цитата:
    есть файлы с именем EJxxxx, необходимо изменить имена на ELxxxx, и к измененному имени добавить текущую дату.  
     
    для файлов с именами без расширения - это делается в одну команду,  
    ren EJ* EL*%date%
     
    с расширением - правишь первый вариснт 01MDM
     

    Код:
    @echo off
    setlocal
    for /f "tokens=*" %%i in ('dir /b EJ*') do call:rename "%%i"
    goto:eof  
     
    :rename
    set "name=%~n1"
    set name
    ren %1 "%name:EJ=EL%%date%%~x1"

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:04 12-08-2009
    HaK1R



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    смотрите что нашел
    "%userprofile%\0016~1" - это папка "Рабочий стол"

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 11:55 12-08-2009
    wolf0425



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

    Цитата:
    "%userprofile%\0016~1" - это папка "Рабочий стол"
     
    У тебя на компе - возможно, хотя и странновато

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:13 12-08-2009
    spilanto

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа, разбирающиеся, помогите... есть задача: пинговать оределенные адреса маршрутизаторов D-link 804HV (192.168.1.x, 192.168.2.x и т.д.) в случае не отклика запустить ребут... по средствам http://192.168.1.x/x.htm  
     
    реальна ли реализация этого с помощью батника, если да прошу: направить на путь истинный и показать как это выглядит.
     
    заранее благодарен, с уважением...

    Всего записей: 3 | Зарегистр. 12-08-2009 | Отправлено: 15:40 12-08-2009 | Исправлено: spilanto, 15:41 12-08-2009
    HaK1R



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wolf0425
    У тебя не катит?
    Я когда себе турбо С ставил увидел что он у меня так отображает рабочий стол
     
    Добавлено:
    spilanto

    Цитата:
    192.168.1.x, 192.168.2.x и т.д.

    x-значит произвольное число? т.е. нужно все такие адруса пропинговать 192.168.Х.Х ?
    запустить ребут чего? + по каким средствам? что надо ссделать с http://192.168.1.x/x.htm   ?

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 17:49 12-08-2009
    spilanto

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть маршрутизатор D-link c ip - 192.168.1.1 он переодически теряет VPN тонель, помогает только ребут через его веб интерфейс. в адресной строке браузера это выглядит следующим образом http://admin:1234@192.168.1.1/x.htm
     
    в айпи - х - произвольное число.
     
    верное пропинговать нужно 192.168.х.х
     
    запустить ребут маршрутизатора по средствам браузера в адресной строке которого должно быть - http://admin:1234@192.168.1.1/x.htm

    Всего записей: 3 | Зарегистр. 12-08-2009 | Отправлено: 18:08 12-08-2009
    YTs Jeam



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите советом, мне необходимо, чтобы bat файл закрывал нужное приложение, если оно запущено. В итоге написал код:
    Taskkill /F /IM Program.exe
     
    А как теперь прописать, чтобы bat ничего не делал, если такого приложение в task manager нету, другими словами просто закрывался.

    Всего записей: 142 | Зарегистр. 03-06-2004 | Отправлено: 19:24 12-08-2009
    wolf0425



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

    Цитата:
    А как теперь прописать, чтобы bat ничего не делал, если такого приложение в task manager нету, другими словами просто закрывался.
    вообще-то если Program.exe не запущен - твой вариант и так ничего кроме сообщения об отсутствии Program.exe не делает.
    но если хочешь проверить заранее, или проверить одну программу а закрыть другую - то че-то типа такого:

    Код:
    tasklist | find /i "Program.exe" && echo Program.exe is working  

    echo заменяешь например на Taskkill чего надо

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 20:05 12-08-2009 | Исправлено: wolf0425, 20:06 12-08-2009
    Robby

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

    Цитата:
    Помогите советом, мне необходимо, чтобы bat файл закрывал нужное приложение, если оно запущено. В итоге написал код:  
    Taskkill /F /IM Program.exe  

     

    Код:
    tasklist | find /i "Program.exe" && Taskkill /F /IM "Program.exe"

     
    && запускает команду, стоящую за символом &&, только если команда, стоящая перед этим символом была выполнена успешно.

    Всего записей: 878 | Зарегистр. 28-09-2003 | Отправлено: 20:07 12-08-2009
    YTs Jeam



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

    Всего записей: 142 | Зарегистр. 03-06-2004 | Отправлено: 20:40 12-08-2009
    01MDM



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

    Цитата:
    смотрите что нашел
    "%userprofile%\0016~1" - это папка "Рабочий стол"

    Вполне нормальное отображение в command.com. Раскладка переключается?

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:51 12-08-2009
    HaK1R



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

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 00:24 13-08-2009
    01MDM



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

    Код:
     
    echo NTCMDPROMPT 1>>%systemroot%\system32\config.nt
    shutdown /r /t 0
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:13 13-08-2009
    Shadow4



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Есть проблема - нужен батник на перезагрузку компьютера, при зависании службы или ошибке службы, или незапущенной службе..............
     
    Заранее огромной  спасибо!!!!!!!!!!!!!!

    Всего записей: 257 | Зарегистр. 18-01-2009 | Отправлено: 11:21 13-08-2009
    fargo44



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день! Прошу помощи.
     
    Как сделать жизнеспособным такой батник (написал скорее в логическом виде нежели практическом):
     

    Код:
    @echo off
     
    rem Задаем время, когда компьютер должен выключиться
    set NeedTime=18:00
     
    rem Получаем текущее системное время
    set CurTime=%TIME%
     
    rem Вычисляем сколько от текущего момента осталось секунд до заданного момента
    set /a RESULT=NeedTime - CurTime
     
    rem Выключаем компьютер после отсчета заданного интервала
    shutdown -s -f -t %RESULT%
     
    exit

     
    ?

    Всего записей: 731 | Зарегистр. 17-09-2006 | Отправлено: 10:06 14-08-2009 | Исправлено: fargo44, 11:01 14-08-2009
    anachrom

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Shadow4
    Ну перезагрузить shutdown -r Если нужно завершать с коментом то добавь параметр -с "комментарий" а вот остальное.
    Вот нашел кое что, вроде даже посты уважаемого 01MDM.

    Код:
     
    @echo off  
     
    for /f "tokens=4" %%i in ('sc query ServiceName ^| findstr /i "state"') do (  
       set checksrv=%%i  
    )  
    if %checksrv%=="running" (  
           :: Код если служба запущена:  
           echo ServiceName %checksrv%  
           ) else (  
           :: Код если служба остановлена:  
           echo ServiceName %checksrv%  
           )
     

    Но почему то в условии выбирается else. И если служба запущенна и если остановленна.
    Вот и давайте от этого плясать. Думаю 01MDM будет самому интересно.
    P.S. я сам только изучаю, так что с меня много не вытащишь.

    Всего записей: 179 | Зарегистр. 18-11-2008 | Отправлено: 10:13 14-08-2009
       

    Страницы: 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 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru