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

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

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

vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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-файлах 6
(часть 1, часть 2, часть 3, часть 4, часть 5)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

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

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





    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 23:07 04-11-2008 | Исправлено: vu1tur, 11:38 26-05-2009
    Maza_Faka



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

    Цитата:
    проверял раз в час (ну или раз в сутки, не важно) наличие окна с заголовком "my program was crashed" и рестартить службу "my program"?

    Пример:

    Код:
     
    @Echo Off
     
    :WindowCheck
    Tasklist /FI "Windowtitle EQ my program was crashed" 2>Nul | Find /i "PID">Nul 2>&1 && Call :MyProc
    Ping -n 3600 127.0.0.1>Nul
    GoTo :WindowCheck
     
    :MyProc
    Echo MyProc
     


    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:34 14-02-2009
    chel78



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

    Цитата:
    Пример текстового файла с IP-адресами:
     
    Код:
     
    192.168.0.1
    192.168.0.2
    192.168.0.3
    192.168.0.4
     
    и т. д.  

     не получается (( все равно пишет что -  процесс не может получить доступ к файлу, так как файл занят другой программой

    Всего записей: 124 | Зарегистр. 19-01-2007 | Отправлено: 12:15 14-02-2009
    Maza_Faka



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

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

    Проверь каким приложением занят этот файл.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 13:56 14-02-2009
    diodio



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Добрый день.
    Подскажите, пжалста, возможно ли одной строкой запустить telnet, залогинится на устройстве и выполнить на нем же определенную команду?
     
    что то вроде telnet 2.2.2.2 login pass system restart?
     
    Пожалуйста, помогите написать задачу вида - пропадает пинг с устройства в сети зайти телнетом и рестартануть его.

    Всего записей: 111 | Зарегистр. 26-12-2006 | Отправлено: 14:13 14-02-2009 | Исправлено: diodio, 14:19 14-02-2009
    ponand

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите плиз...
     команду для создания пустых текстовых файлов

    Всего записей: 56 | Зарегистр. 14-07-2008 | Отправлено: 16:45 14-02-2009 | Исправлено: ponand, 16:53 14-02-2009
    diodio



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    2 ponand
    я топором делаю, конечно , но можно так cls >c:\file.txt

    Всего записей: 111 | Зарегистр. 26-12-2006 | Отправлено: 17:01 14-02-2009
    BorlandIMHO

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

    Цитата:
    команду для создания пустых текстовых файлов

    @copy nul file.txt

     
    В отличие от варианта diodio, создаётся действительно пустой файл нулевого размера.

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

    Всего записей: 2403 | Зарегистр. 12-10-2006 | Отправлено: 18:01 14-02-2009 | Исправлено: BorlandIMHO, 18:04 14-02-2009
    Maza_Faka



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

    Цитата:
    команду для создания пустых текстовых файлов


    Код:
     
    type nul>test.txt
     


    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 18:03 14-02-2009
    Elroir



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

    Код:
     
    set /p=<nul>test.txt
    или
    fsutil file createnew  test.txt 0
     


    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:22 14-02-2009
    ponand

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо всем !
    Подскажите еще можно ли в if строка1==строка2 вместо строки 2 подставить несколько значении чтоб не переписывать несколько раз весь блок ?

    Всего записей: 56 | Зарегистр. 14-07-2008 | Отправлено: 19:11 14-02-2009 | Исправлено: ponand, 19:31 14-02-2009
    Elroir



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

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:18 14-02-2009
    ponand

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

    Всего записей: 56 | Зарегистр. 14-07-2008 | Отправлено: 19:20 14-02-2009 | Исправлено: ponand, 19:27 14-02-2009
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ponand
    Есть другие способы - например:

    Код:
     
    @echo off
    set "test=Desk"  
    set "found="
    for %%a in ("Table" "Chair" "Desk") do if "%test%"=="%%~a" set "found=yes"
    if defined found echo Found


    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:36 14-02-2009
    ponand

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А можете пример с цифрами надо проверить от 514 до 524  
    как я понимаю надо использовать  GEQ и LEQ но как ?

    Всего записей: 56 | Зарегистр. 14-07-2008 | Отправлено: 20:18 14-02-2009 | Исправлено: ponand, 20:33 14-02-2009
    Alex1985

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza_Faka
    спасибо!
     
    к сожалению, выяснился 1 недостаток. окно "my program has crashed" "принадлежит" окну "my program" (то есть, второго окна в панели задач нет). таким образом, окна "my program has crashed" батник не видит. это можно как то обойти?

    Всего записей: 814 | Зарегистр. 07-05-2004 | Отправлено: 20:23 14-02-2009 | Исправлено: Alex1985, 01:11 15-02-2009
    batyaps

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как можно получить в буфер обмена текущую дату в формате dd.mm.yy (14.02.2009)?

    Всего записей: 1 | Зарегистр. 14-02-2009 | Отправлено: 20:25 14-02-2009
    Ortios



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir,
    В приведенном примере по команде if, не могли бы вы пояснить для чего ставится тильда в следующем выражении, а без нее пример не работает

    Цитата:
    if "%test%"=="%%~a"

     
    Ну и до кучи еще вопрос:
    Есть ли возможность обрезать переменную %%a в командах For таким же способом, как например, обрезают %date:~0,2%.
    К примеру, в команде for переменная %%a принимает значения разных слов: в т.ч. на букву "m" - metro, model, mask ... Возможен ли отбор слов на букву "m" в таком духе:  %%a:~0,1==m ?

    Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 23:26 14-02-2009
    Elroir



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

    Цитата:
    надо проверить от 514 до 524  
    как я понимаю надо использовать  GEQ и LEQ но как ?


    Код:
     
    set "number=518"
    if %number% GEQ 514 (
     if %number% LEQ 524 (
    echo In range )) else (
    echo Outside the range
    )
     

     
    Ortios

    Цитата:
    для чего ставится тильда  

    Тильда убирает кавывки (если они есть) с обеих сторон выражения.
     

    Цитата:
    Есть ли возможность обрезать переменную %%a в командах For таким же способом, как например, обрезают %date:~0,2%

    Нет, такие манипуляции можно делать только если переменная имеет вид %var% (окружена знаками процента). Можно использовать директиву "setlocal enabledelayed expansion" и внутри цикла определить переменную, с которой можно работать:

    Код:
     
    setlocal enabledelayedexpansion
    for %%a in (*.*) do (
    set "var=%%a"
    echo !var:~0,2!
    )
     


    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:45 15-02-2009
    Froz



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

    Код:
     
    @echo off
    if exist "%temp%\PasteClipBoard.vbs" goto :run
    echo Dim objArgs>"%temp%\PasteClipBoard.vbs"
    echo Set objArgs = Wscript.Arguments>>"%temp%\PasteClipBoard.vbs"
    echo Content = objArgs(0)>>"%temp%\PasteClipBoard.vbs"
    echo Set objIE = CreateObject("InternetExplorer.Application")>>"%temp%\PasteClipBoard.vbs"
    echo objIE.Navigate("about:blank")>>"%temp%\PasteClipBoard.vbs"
    echo objIE.document.parentwindow.clipboardData.SetData "text", Content>>"%temp%\PasteClipBoard.vbs"
    echo objIE.Quit>>"%temp%\PasteClipBoard.vbs"
    :run
    cscript //nologo "%temp%\PasteClipBoard.vbs" %date%
     


    Всего записей: 161 | Зарегистр. 03-02-2004 | Отправлено: 03:29 15-02-2009
    NvvLazyTiger



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

    Цитата:
    команду для создания пустых текстовых файлов

    Ещё вариант:

    Код:
    @echo. >nul 2>test.txt

    Всего записей: 257 | Зарегистр. 14-02-2009 | Отправлено: 06:53 15-02-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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 6
    vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru