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

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

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

evle (19-03-2008 19:44): Лимит страниц.
Задачи на bat-файлах 5
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 15:21 11-09-2007 | Исправлено: Elroir, 01:52 26-02-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Takuja
    Выводится только это? в одну строчку? Тогда должно работать.
     

    Цитата:
    получается результат
    00-04-4B-80-80-03  \Device\Tcpip_{950B7834-3FEC-44B3-AEDC-63B174539635}, \Device\NwlnkIpx

     
    Попробуй так:

    Код:
     
    @echo off
    setlocal
    for /f "tokens=1" %%i in ('getmac /nh') do (set mac=%%i && goto:next)
     
    :next
    echo %mac%
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:37 12-02-2008
    Takuja

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не не,  ответ в две строки  
    00-04-4B-80-80-03  \Device\Tcpip_{950B7834-3FEC-44B3-AEDC-63B174539635},  
    \Device\NwlnkIpx
    в форме просто не видно есть там переход строки или нету
     
    Вообщем
    Код:
     
    @echo off  
    setlocal  
    for /f "tokens=1" %%i in ('getmac /nh') do (set mac=%%i && goto:next)  
     
    :next  
    echo %mac%  
     

     
    Это точ то я искал.  
    Теперь пар слов зачем это мне нада было, может кому то пригодиться
     
    Есть кучка компов в сети на винде и несколько серверов на линуксе. И доменного управления не поднято ни на одном из серверов. А вот настраивать как то компы та нада, учитывая что конфигурацию драйверов можно настроить автоматически или даже установить все сразу в образ, остаётся вопрос за малым, как после поднятия образа, изменить автоматически все настройки машины с точной привязкой к айпи адресу и веткам реестра.  
    Ответ прост ПО МАК АДРЕСУ.  
    Этот скрипт позволяет своими руками создать службу автоматического назначения айпиадреса  
    Изобрели велосипед за ново своими руками, простыми средствами виндовс ХР без использования серверов
     
    УРА ТОВАРИЩИ

    Всего записей: 64 | Зарегистр. 11-02-2008 | Отправлено: 11:35 12-02-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Takuja
    Только на XP Home работать не будет, там нет getmac.exe

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    И на машинах, где 1394-соединение присутствует выдаст первый по списку MAC, интересно это сетевой контроллер будет или firewire? Соответственно наличие 2-х сетевушек... (была встроенная на плате 100mbps, добавили еще одну Gigabit ethernet)

    Всего записей: 82 | Зарегистр. 08-02-2005 | Отправлено: 12:52 12-02-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ProbaRK
    Задача была только для одного интерфейса, надо больше - это легко изменить.  

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



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Уважаемые!
    Как при помощи батника или скрипта запустить Control Userpasswords2

    Всего записей: 201 | Зарегистр. 01-04-2006 | Отправлено: 18:19 12-02-2008
    01MDM



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

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:28 12-02-2008
    batniki



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите, нужно прочитать файл и если он пустой сделать goto
    и еще... как удалять при определение IP пробел перед ним и сделать не запись в файл, а переменную set ip=%%i ?
    For /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr "IP-"') do echo %%i>>ip.txt

    Всего записей: 50 | Зарегистр. 11-02-2008 | Отправлено: 04:29 13-02-2008 | Исправлено: batniki, 05:03 13-02-2008
    Maza Faka



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

    Код:
    @echo off
    for %%a in (test.txt) do if %%~za equ 0 goto msg
    ::your code
    goto :eof
     
    :msg
    echo file is empty
     

     
    2.

    Код:
     
    @echo off
    for /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr "IP-"') do set IP=%%i
    set IP=%IP: =%
    echo %IP%
    pause
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:39 13-02-2008
    Joolz

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    как можно получить имя текущего каталога?
    нужно чтобы было не "\Program Files\Utility\Soft\ProgramDIR\" а просто "ProgramDIR"

    Всего записей: 100 | Зарегистр. 24-01-2008 | Отправлено: 15:47 13-02-2008
    01MDM



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

    Код:
     
    for /f "tokens=*" %%i in ("%cd%") do echo %%~nxi
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:05 13-02-2008
    Takuja

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Парни это сново я кароче такая тема:  
    Эта команда нада для настройки айпи адреса и т.д.

    Код:
    netsh interface ip set address "Подключение по локальной сети" static 10.131.2.163 255.255.255.0 10.131.2.129 1  

    а вот теперь давайте подумаем как там замуутить что бы делалась проверка на  
    Подключение по локальной сети
    Подключение по локальной сети 2

     как проверить есть ли у меня одно из этих подключений и потом присвоить одному из них ту команду сверху?
    типа  
    как вообще посмотреть какие подключения у меня есть?

    Всего записей: 64 | Зарегистр. 11-02-2008 | Отправлено: 17:37 13-02-2008
    shva

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, как из строки получить построку по  индексу-переменной?
    Вот так не получится:
    set var=qwerty
    set indx=3
    set sim=%var:~indx,1%
    echo %sim%
     
    А как надо?

    Всего записей: 11 | Зарегистр. 19-12-2006 | Отправлено: 19:39 13-02-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Takuja
    Название сетевого подключения может быть произвольным, т.к его можно переименовать - не обязательно "Подключение по локальной сети". В этом случае, если искать через ipconfig, будут ошибки.
     
    Попробуй вариант (на XP Home работать не будет). Только для первого сетевого подключения.

    Код:
     
    @echo off
    for /f "tokens=2 delims==" %%i in ('
          wmic nic where DeviceId^=1 get NetConnectionID /value') do (
          netsh interface ip set address "%%i" static 10.131.2.163 255.255.255.0 10.131.2.129 1
    )          
     

     
    shva

    Код:
     
    @echo off
    setlocal enabledelayedexpansion
    set var=qwerty
    set indx=3
    set sim=!var:~%indx%,1!
    echo %sim%
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:03 13-02-2008 | Исправлено: 01MDM, 20:07 13-02-2008
    shva

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

    Всего записей: 11 | Зарегистр. 19-12-2006 | Отправлено: 21:58 13-02-2008
    Sandy Ann

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Помогите неучу! Переодически ковыряюсь в играх и если оттучить от диска полностью не выходит приходится пользоваться батниками, а конкретнее командой subst. Был нарисован код, избавляющий конечного юзера от проблем и без проблем пашущий в Хрюшке. Но в системах 9х поперли проблемы:
    *При попадании на съемный диск выводится запрос "стоп\повтор\сброс\". Как игнорировать сей запрос?
    *При запуске игры код выполняется дальше, а не ждет, пока игра завершится.
    Подскажите, как подправить батник, чтоб он работал в 9х\МЕ так же, как и в ХР.  

    Всего записей: 38 | Зарегистр. 05-02-2008 | Отправлено: 22:48 13-02-2008
    evgeni666



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sandy Ann
    Как первое лечится - не знаю.
    "Game.exe" замени на "start /w Game.exe"
    а еще лучше в окне дос запусти start /?

    Всего записей: 371 | Зарегистр. 22-12-2005 | Отправлено: 09:00 14-02-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sandy Ann
    Кто сейчас помнит, что можно в 98?

    Код:
     
    @echo off
    for %%a in (q w e r t y u i o p s d f g h j k l z x c v n m) do (
        dir %%a: 1>nul 2>&1
        if %errorlevel%==1 (
            set letter=%%a
            goto Game
        )
    )
    :Game
    subst %letter%: "Path\To Game\Folder"
    start /wait "" "%letter%:\Game.exe"
    subst %letter%: /d
     


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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    блин. ничего не понял и то что написано у меня не заработало. Скажите а можно как то перебирать подключения по очереди? что не по имени подключения задавать настройки а по порядку подключения?  
    другими словами как мне например применить  
    netsh interface ip set address "Подключение по локальной сети" static 10.131.2.163 255.255.255.0 10.131.2.129 1  
    к первому или второму подключению? изначалосьно считается что подключение всего одно, но вот как оно называется никто не знает, вот какой такой код нада применить что бы оно само подумало какое у компа подключение и само его поменяло.  
     
    Добавлено:
    2 01MDM
    Выполнил  

    Код:
    wmic nic where DeviceId=1 >> d:\2.txt  

    ответ NetConnectionID - пусто там
    как впрочем псто в большинстве параметров того адаптера.
    Да там первым идет тот адаптер, что требдется, но его значение там не определено.  
    Можно как то это реализовать через другие методы? например через  ipconfig или что нибдь дргое?  
    Очень нада, это последнее что мне вообще нада для завершения полной автоматизации моей работы по настройке винды.
    Помогайте кто чем может

    Всего записей: 64 | Зарегистр. 11-02-2008 | Отправлено: 11:19 14-02-2008
    01MDM



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

    Цитата:
    wmic nic where DeviceId=1 >> d:\2.txt

    Надо:

    Код:
     
    wmic nic where DeviceId=1 get NetConnectionID /value
     

    Еще два способа, но они какие-то кривые
    1. Через реестр

    Код:
     
    @echo off
    setlocal
    chcp 1251 1>nul
    set rpath=HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}
    for /f %%1 in ('reg query %rpath% ^| find "HKEY"') do (
        for /f %%2 in ('reg query %%1 ^| find "Connection"') do (
        for /f "tokens=3*" %%3 in ('reg query %%2 ^| find "Name"') do (echo %%3 %%4))
    )
    chcp 866 1>nul
     

     
    2. Через ipconfig, для русской windows. Адаптер наверное (проверить не могу) должен быть включен

    Код:
     
    :: Батник должен быть в кодировке windows-1251
    @echo off
    setlocal
    chcp 1251 1>nul
    for /f "tokens=*" %%i in ('ipconfig ^| findstr "Ethernet"') do call:parse "%%i"
    chcp 866 1>nul
    goto:eof
     
    :parse
    set nname=%~1
    set nname=%nname: - Ethernet адаптер:=%
    echo %nname%
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:28 14-02-2008 | Исправлено: 01MDM, 12:48 14-02-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 101 102 103

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 4
    evle (19-03-2008 19:44): Лимит страниц.
    Задачи на bat-файлах 5


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru