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

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



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

    Всего записей: 56 | Зарегистр. 10-12-2007 | Отправлено: 21:37 08-11-2008 | Исправлено: SymA, 21:39 08-11-2008
    Drunken Master

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FantomaS77
    EXIST это параметр команды IF (см. IF /?)
    Про .. см. CD /?
    Команда HELP выводит список команд оболочки. Много интересного можно узнать из справок по конкретным командам. Обязательными к прочтению считаю SET /? и FOR /?

    Всего записей: 75 | Зарегистр. 11-12-2005 | Отправлено: 21:46 08-11-2008
    FantomaS77

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    И еще небольшой вопрос ))
    Как сделать, чтобы при выполнении
    MOVE D:\123\1.tmp ..\1.tmp
    перемещало не в C:\Documents and Settings, а в D:\  ?

    Всего записей: 4 | Зарегистр. 08-11-2008 | Отправлено: 21:55 08-11-2008
    Drunken Master

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FantomaS77
    .. — это псевдоним родительского каталога для текущего каталога.
    Меняет текущий каталог команда CD.
    Вам нужно перед MOVE выполнить CD /D D:\123 или явно указывать все пути MOVE D:\123\1.tmp D:\1.tmp

    Всего записей: 75 | Зарегистр. 11-12-2005 | Отправлено: 22:05 08-11-2008
    Elroir



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

    Код:
     
    Title ADSL
    :r
    rasdial "VPN" login pass
    ping -n 6 -w 1000 127.0.0.1>nul
    ping www.google.com | find "TTL=" || goto r
     


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:07 08-11-2008
    FantomaS77

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Drunken Master, это понятно, но как отделить путь от самого файла, и сделать его(путь) текущим. Например при передаче параметра, параметр будет выглядеть напр как
    D:\123\1.tmp и как оттуда выцепить D:\123, чтобы потом сделать активным?

    Всего записей: 4 | Зарегистр. 08-11-2008 | Отправлено: 23:05 08-11-2008
    Smitis



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

    Цитата:
    но как отделить путь от самого файла, и сделать его(путь) текущим. Например при передаче параметра, параметр будет выглядеть напр как  
    D:\123\1.tmp и как оттуда выцепить D:\123, чтобы потом сделать активным?

    Допустим, это первый параметр. Тогда так:
    cd /d %~dp1
     
    Как говорится, RTFM


    ----------
    Разум когда-нибудь победит

    Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 00:03 09-11-2008
    losttda

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос по сети, стоит задача написать батник который автоматически прописывает роуты до текущего шлюза.
    Насчёт роутов ясно, а вот как получить текущий шлюз?

    Всего записей: 25 | Зарегистр. 30-05-2007 | Отправлено: 08:58 09-11-2008
    01MDM



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

    Цитата:
    Насчёт роутов ясно, а вот как получить текущий шлюз?

     

    Код:
     
    @echo off
    for /f "tokens=2 delims=:" %%i in ('route print') do set dg=%%i
    set dg=%dg: =%
    echo default gateway is %dg%
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:36 09-11-2008
    losttda

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Данный код ничего в результате не выводит.

    Всего записей: 25 | Зарегистр. 30-05-2007 | Отправлено: 13:46 09-11-2008
    01MDM



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

    Цитата:
    Данный код ничего в результате не выводит.

     
    Странно, у меня все выводит, как ты его запускаешь?

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:27 09-11-2008
    Taciturn

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

    Цитата:
    стоит задача написать батник который автоматически прописывает роуты до текущего шлюза

    У меня это сделано таким скриптом - http://taciturn-shadow.spb.ru/UniRoute.cmd - успешно работает от NT4 до 2008 сервера.

    Всего записей: 1976 | Зарегистр. 26-07-2003 | Отправлено: 15:53 09-11-2008 | Исправлено: Taciturn, 16:09 09-11-2008
    NIKZZZZ



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

    Код:
    FOR /F "usebackq tokens=1* delims=:" %%i in (`ipconfig ^| find /i "шлюз" ^| find /i ": 10."`) do set ss=%%j
    if "%ss%"=="" (
      Echo Default gateway error
      pause>nul
      goto :eof
    )  
    cls
    @echo Default gateway %ss%
    route -f
    route add 0.0.0.0 MASK 0.0.0.0 %ss%
    route -p add 10.0.0.0 mask 255.0.0.0 %ss%
    ....
     


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 16:06 09-11-2008
    SymA



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir, спасибо, прекрасно работает!
    Правда за не надобностью убрал строку пинга локалХоста

    Всего записей: 56 | Зарегистр. 10-12-2007 | Отправлено: 17:35 09-11-2008
    Elroir



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

    Цитата:
    Правда за не надобностью убрал строку пинга локалХоста

    Я ее вставил на всякий случай. На некоторых системах бывает нужна задержка.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:26 09-11-2008
    batniki



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

    Всего записей: 50 | Зарегистр. 11-02-2008 | Отправлено: 20:34 09-11-2008
    Froz



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    batniki,
     
    @echo off
    regedit /ea %Temp%\ChkReg.txt "HKEY_CURRENT_USER\Software\MyPrg-1"
    if exist %Temp%\ChkReg.txt type %Temp%\ChkReg.txt>reg.reg
    regedit /ea %Temp%\ChkReg.txt "HKEY_LOCAL_MACHINE\Software\MyPrg-1"
    if exist %Temp%\ChkReg.txt findstr /v /b /i "REGEDIT4" %Temp%\ChkReg.txt>>reg.reg
    if exist %Temp%\ChkReg.txt del %Temp%\ChkReg.txt

    Всего записей: 161 | Зарегистр. 03-02-2004 | Отправлено: 20:49 09-11-2008
    johnmar



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужно отсортировать строки в текстовый файл в алфавитном порядке (кодировка 1251, рус.)
    пробовал разные варианты
     
     
    вариант 1:
    sort < 1.txt > 2.txt
    выдаёт какую-то хрень (не по алфавиту)
     
     
    вариант 2:
    chcp 1251
    sort < 1.txt > 2.txt
    то же самое
     
     
    вариант 3:
    sort /l C < 1.txt > 2.txt
    побайтная сортировка (на выходе А Б В .... а б в ...)
    не совсем то, что нужно
     
    получится (к примеру):
    Арбуз
    Водка
    Тыква
    ашхабад
    вовчик
    толян
     
    когда надо:
    Арбуз
    ашхабад
    вовчик
    Водка
    толян
    Тыква
     
     
    проблема только с русскими буквами (обычный текст в win-кодировке)

    Всего записей: 30 | Зарегистр. 28-03-2008 | Отправлено: 23:02 09-11-2008 | Исправлено: johnmar, 23:12 09-11-2008
    batniki



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Froz, спасибо большое!
     
    Столкнулся с такой проблемой...  
    Как экранизировать переменную return, а то в txt записывается вместо if %return%==y  if ==y и сохранить debug.txt  на рабочий стол %AllUsersProfile%\Рабочий стол (Win XP SP3)

    Код:
    echo set /P return="(y/n): " >>debug.txt
    echo if %return%==y goto label >>debug.txt
    echo if %return%==n exit >>debug.txt
    ....


    Всего записей: 50 | Зарегистр. 11-02-2008 | Отправлено: 01:35 10-11-2008 | Исправлено: batniki, 01:36 10-11-2008
    nightlight

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    johnmar
     
     
    Попробуйте free утилитку cmsort (57kb)
    http://www.chmaas.handshake.de/delphi/freeware/cmsort/cmsort.htm
    будет примерно так:
    D:\>cmsort /C=1,0 a.txt b.txt

    Всего записей: 112 | Зарегистр. 17-03-2004 | Отправлено: 01:46 10-11-2008 | Исправлено: nightlight, 01:47 10-11-2008
       

    Страницы: 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