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

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите с такой задачей:
    Необходимо один раз в минуту менять IP в диапазоне от 192.168.1.10 до 192.168.1.255
    Собственно смену IP адреса я делаю так:

    Код:
    netsh interface ip set adress "Подключение по локальной сети 2" static 192.168.1.10

    Всего записей: 1004 | Зарегистр. 24-10-2005 | Отправлено: 12:08 26-05-2009
    Maza_Faka



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

    Код:
     
    @Echo Off
     
    For /L %%A In (1,1,255) Do (
      Netsh Interface IP Set Adress "Подключение по локальной сети 2" static 192.168.1.%%A
      Ping -n 60 localhost>Nul
    )
     

     
    P.S.
    Код сохраните в DOS-кодировке.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 13:06 26-05-2009
    vcrank

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

    Цитата:
    @Echo Off
     
    For /L %%A In (10,1,255) Do (
      Netsh Interface IP Set Address "Подключение по локальной сети 2" static 192.168.1.%%A
      Ping -n 60 localhost>Nul
    )  

     
    Ещё надо бы шлюз постоянно прописывать. Почему-то не нашёл как это прописать

    Всего записей: 1004 | Зарегистр. 24-10-2005 | Отправлено: 13:46 26-05-2009 | Исправлено: vcrank, 13:52 26-05-2009
    Maza_Faka



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

    Цитата:
    надо бы шлюз постоянно прописывать


    Код:
     
    gateway=192.168.1.%%A
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 13:51 26-05-2009
    vcrank

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza_Faka
    Премного благодарен. Вот полностью устраивающий меня вариант
     

    Цитата:
    @Echo Off  
    Netsh Interface IP Set Address "Подключение по локальной сети 2" static 192.168.1.%%A  mask=255.255.255.0 gateway=192.168.1.1

     
    А возможно ли средствами bat-файлов узнать результаты команды Ping ? Либо пинги идут, либо нет (потери и прочее не интересует)

    Всего записей: 1004 | Зарегистр. 24-10-2005 | Отправлено: 13:59 26-05-2009
    HaK1R



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

    Код:
    @echo off
    set "SavePath=%~dp0\delet.log"
    pushd "%SystemDrive%\DOCUME~1\"
    chcp 1251 1>nul
    for /f "tokens=*" %%a in ('dir /b /ad') do (
      if exist "%%~a\LOCALS~1\Temporary Internet Files\" (
        pushd "%%~a\LOCALS~1\Temporary Internet Files\"
        del /f /s /q /a * 1>>"%SavePath% 2>&1
        rmdir /s /q . 1>nul 2>&1
        popd
      )
    )
    chcp 866 1>nul
    popd

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 14:09 26-05-2009 | Исправлено: HaK1R, 14:11 26-05-2009
    Maza_Faka



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

    Цитата:
    узнать результаты команды Ping ? Либо пинги идут, либо нет

    Можно:

    Код:
     
    @Echo Off
    Ping -n 1 192.168.1.1>Nul
    If "%ERRORLEVEL%"=="1" Echo No connect
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 14:31 26-05-2009
    tatuchipapa

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Какие службы должны быть включены в winXP, чтобы скрипты срабатывали?
     
    Добавлено:
    Задача - если есть пинг на роутер(192.168.0.69), сделать пинг на r0.ru, если нет пинга на роутер, выполнить скрипт-1(1rebt.vds), если нет пинга на r0.ru, выполнить скрипт-2(2rebt.vds).
    Для наглядности выглядит так:  
     
    Компутер-->точка доступа(её ребут 1rebt.vds)-->точка доступа-->роутер(ребут 2rebt.vds)-->r0.ru

    Код:
    @echo off
    :loop
    ping 192.168.0.69 | find "TTL=" 1>nul 2>&1
    if errorlevel 1 (
      wscript.exe "1rebt.vbs"
      )
    ping r0.ru | find "TTL=" 1>nul 2>&1
    if errorlevel 1 (
      wscript.exe "2rebt.vbs"
      )
    ping -n 61 localhost 1>nul 2>&1
    goto :loop

     
    Укажите на ошибки пожалуйста.

    Всего записей: 48 | Зарегистр. 07-08-2007 | Отправлено: 00:11 27-05-2009 | Исправлено: tatuchipapa, 00:51 27-05-2009
    Mr_Hat



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Есть задача получить из файла название интернет соединения
     

    Код:
    more "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Connections\Pbk\rasphone.pbk" | find /i "[" > %temp%\rasphone.tmp

     
    теперь необходимо выявить  из квадратных скобок
    название соединения и записать его как переменную,
    а так же принять во внимание что имен может быть более чем одно.
    Затем предоставить на выбор пользователя использовать одно из возможных названий
     
     
    данный код разрабатывается для создания автоматического подключения интернет

    Всего записей: 848 | Зарегистр. 04-10-2005 | Отправлено: 05:02 27-05-2009
    garri671



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

    Цитата:
    отчет в текущей папки

    Спасибо!
    Добавлено:
    Bigmozg

    Цитата:
    Привет всем, стоит задача:  
    Создать пакетный файл tri.bat, при вызове которого могут быть заданы параметры – имена трех других файлов. Проверить наличие параметров и су-ществование этих файлов.

    ---tri.bat---
    @echo off
    if not "%1"=="" goto m1
    (echo "Ошибка - Не введен первый параметр")
    goto finish
    if not "%2"=="" goto m2
    (echo "Ошибка - Не введен второй параметр")
    goto finish
    if not "%3"=="" goto m3  
    (echo "Ошибка -  не введен третий параметр")
    goto finish
    :m1
    if not exist %1 (copy   >%1)
    :m2
    if not exist %2 (copy   >%2)
    :m3
    if not exist %3 (copy   >%3)
    call tri1.bat %1 %2 %3
    :finish
    ---tri1.bat---
    attrib -r -h -s -a %1
    attrib -r -h -s -a %2
    attrib -r -h -s -a %3
    attrib +r +s %1
    attrib +r +s %2
    attrib +r +s %3
     

    Всего записей: 133 | Зарегистр. 18-07-2007 | Отправлено: 06:28 27-05-2009 | Исправлено: garri671, 06:53 27-05-2009
    NIKZZZZ



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

    Код:
    @Echo off
    Echo.
    Set i=0
    For /f "usebackq tokens=1 delims=[]" %%a in (`more "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Connections\Pbk\rasphone.pbk" ^| find /i "[" ^| find /i "]"`) Do Call :_Dial %%a
    set _ok=
    set /p _ok=Enter your choice :
    Call :_Choice Dial[%_ok%]
    GoTo :Eof
     
    :_Dial
    Set /a i=i+1
    Set Dial[%i%]=%1
    echo %i% - %1
    GoTo :Eof
     
    :_Choice
    setlocal enabledelayedexpansion
    Set ChoiceDial=!%1!
    If "%ChoiceDial%"=="" (
      Echo Incorrect choice
    ) Else (
      Echo Your choice - "%ChoiceDial%"
    )
    GoTo :Eof

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 06:58 27-05-2009
    HaK1R



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

    Цитата:
    ---tri1.bat---
    attrib -r -h -s -a %1
    attrib -r -h -s -a %2
    attrib -r -h -s -a %3
    attrib +r +s %1
    attrib +r +s %2
    attrib +r +s %3  

    думая так проще
    Код:
     
    attrib +r -h +s -a "%1"
    attrib +r -h +s -a "%2"
    attrib +r -h +s -a "%3"
     

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 12:14 27-05-2009 | Исправлено: HaK1R, 12:18 27-05-2009
    garri671



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

    Цитата:
    думаю так проще

    Согласен!
     
    Подскажите, может кто-то сталкивался с проблемкой: как в пределах домена через бат-файл скопировать файлы с одного компа на другой?

    Всего записей: 133 | Зарегистр. 18-07-2007 | Отправлено: 12:29 27-05-2009 | Исправлено: garri671, 14:52 27-05-2009
    HaK1R



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

    Код:
    @echo off
    :loop
    ping 192.168.0.69 | find "TTL=" 1>nul 2>&1
    if errorlevel 1 (
      start "" /wait "%SystemRoot%\system32\wscript.exe" "1rebt.vbs"
    )
    ping r0.ru | find "TTL=" 1>nul 2>&1
    if errorlevel 1 (
      start "" /wait "%SystemRoot%\system32\wscript.exe" "2rebt.vbs"
    )
    ping -n 61 localhost 1>nul 2>&1
    goto :loop

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 12:40 27-05-2009
    ZeroCrash



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Всем привет!
    У меня возникла проблемка с копированием... Вот:

    Код:
    copy 123 "%UserProfile%\Избранное"

    123 - название папки, содержание которой нужно скопировать. После запуска батника пишет что файлы скопированы, но в "%UserProfile%\Избранное" их нет. В чём причина???

    Всего записей: 43 | Зарегистр. 15-04-2009 | Отправлено: 20:49 27-05-2009
    HaK1R



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

    Код:
    echo D | xcopy /e 123 "%UserProfile%\Избранное"

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 20:57 27-05-2009
    ZeroCrash



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

    Код:
    D:\1\$OEM$>echo D   | xcopy /e 123 "C:\Documents and Settings\ZeroCrash\&#9562;чсЁрээю
    х"
    Заменить C:\Documents and Settings\ZeroCrash\&#9562;чсЁрээюх [Yes (да)/No (нет)/All (в
    се)]? D
    Заменить C:\Documents and Settings\ZeroCrash\&#9562;чсЁрээюх [Yes (да)/No (нет)/All (в
    се)]?
    Заменить C:\Documents and Settings\ZeroCrash\&#9562;чсЁрээюх [Yes (да)/No (нет)/All (в
    се)]?
    Заменить C:\Documents and Settings\ZeroCrash\&#9562;чсЁрээюх [Yes (да)/No (нет)/All (в
    се)]?
     
    Заменить C:\Documents and Settings\ZeroCrash\&#9562;чсЁрээюх [Yes (да)/No (нет)/All (в
    се)]?
     
    Заменить C:\Documents and Settings\ZeroCrash\&#9562;чсЁрээюх [Yes (да)/No (нет)/All (в
    се)]?
    D:\1\$OEM$>pause

    Всего записей: 43 | Зарегистр. 15-04-2009 | Отправлено: 21:04 27-05-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZeroCrash
     
    А зачем `echo D`? Просто:

    Код:
     
    @echo off
    chcp 1251 1>nul  
    xcopy /e /i "Что" "Куда"
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:13 27-05-2009
    HaK1R



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    01MDM
    Он первым делом выдает запрос что это имя файла или каталога, у тебя за это отвечаетт параметр /i

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 23:14 27-05-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.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru

    Рейтинг.ru