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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ilyansk
    В autorun.inf на флэшке, можно прописать такую команду:

    Код:
     
    [autorun]
    OPEN=start.bat
    ICON=desktop.ico
    ACTION=Start the synchronization
     

    При этом, строчка "Start the synchronization" будет на первом месте в появляющемся диалоге выбора того, что можно сделать. Это, конечно, не полная автоматизация, но пользователю останется сделать только один клик, выбрав эту строчку.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 12:48 11-02-2008 | Исправлено: Elroir, 12:50 11-02-2008
    Akam1



    Комса
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Посоветуйте, пожалуйста, как решить или ткните где посмотреть.
    Задача - сделать автообмен УРИБ 1С 8.1 через почту не стандартными ее средствами.
    Доделан автообмен 1С так, чтобы сначала он загружал определенный файл, потом делал выгрузку в файл (это пока стандартными способами), а далее запускается bat-файл. В данном файле запускается программа The Bat! с параметрами на создание письма, прикрепление к нему файла и отправки на определенный адрес, далее закрытие программы. Если запускать bat-файл вручную, то все хорошо, письмо создается, отправляется, потом все закрывается. Если же запускать из 1С (запустив процесс обмена), то видно, что в процессах появляется cmd.exe и thebat.exe запущенные в фоне от моего имени, через пару секунд они исчезают, но письмо не создается и ничего не отправляется. Странно, ведь запускается одно и то же, только одно вручную, а другое - запуском bat из 1С. Что делать?
    Или может есть какое-нибудь решение отправки почты с помощью простых bat-файлов или еще каких-нибудь скриптов, не используя почтовую программу?

    ----------
    В правильно поставленном вопросе всегда содержится 50% ответа
    Все будет так, как должно быть. Даже если будет иначе.

    Всего записей: 26360 | Зарегистр. 20-04-2006 | Отправлено: 15:03 11-02-2008
    batniki



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите пожалуйста решить след. задачу:
    Нужно проверить на компе определенный порт если он занят - то открыть программу 1, если свободен то открыть программу 2.
     
    Elroir
    UDP

    Всего записей: 50 | Зарегистр. 11-02-2008 | Отправлено: 15:35 11-02-2008
    Elroir



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

    Код:
     
    @echo off
    netstat -a | find "UDP" | find "1900" >nul && start "" notepad.exe || start "" calc.exe
     

    В данном случае, если какая-либо программа использует UDP порт 1900, запустится notepad.exe, в противном случае calc.exe.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:12 11-02-2008
    Takuja

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте ГУРУ и те кто не очень.  
    Посидел, почитал, и не нашол ни одного нормального ответа.
    Такой вопрос у меня:
    Необхордимо одним батником определить мак адрес машины, и по определенному имени, запустить ту или иную часть кода, в зависимости от списка доступных мак адресов.  К сетевому администрированию это не относиться.
     
    Вроде бы легко, но как показывает практика, ни системных переменных ни точного ответа через стандартные средства СМД не получить (может я просто не знаю).  Причём такой батник должен работать локально от имени администратора, а не по сети.  
     
    Повторю вопрос:
    1. Определить мак адрес машины (считается что сетевых адаптеров по одному на машине)
    2. Сравнить с списком
    3. Запустить нжный участок кода.
     
    Или можно упростить до  
    1. Определить мак адрес
    2. Запустить файл "мак адресс.ВАТ"
     
    Уже целую неделю думаю, ничего не могу придумать.  
    ПОМОГИТЕ

    Всего записей: 64 | Зарегистр. 11-02-2008 | Отправлено: 16:46 11-02-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Takuja
    Второй вариант (можно сделать и первый, только непонятно с каким списком сравнивать):

    Код:
     
    for /f "tokens=3 delims=.: " %%a in ('ipconfig /all ^| find "Physical Address"') do set "mac=%%a"
    call %mac%.bat
     

    Проверялось на английской WinXP SP2.


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 17:49 11-02-2008 | Исправлено: Elroir, 17:50 11-02-2008
    batniki



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir, СПАСИБО ВАМ  
    А вот... возможно с помощью батника как-нибудь ускорить мультимедийный таймер Win? (mmtimer (Directx вроде))

    Всего записей: 50 | Зарегистр. 11-02-2008 | Отправлено: 19:28 11-02-2008
    king_stiven

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

    Цитата:
    Полезные утилиты  


    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 19:29 11-02-2008
    Elroir



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

    Цитата:
    А вот... возможно с помощью батника как-нибудь ускорить мультимедийный таймер Win?

    Нет.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:58 11-02-2008
    Takuja

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

    Код:
    for /f "tokens=3 delims=.: " %%a in ('ipconfig /all ^| find "Physical Address"') do set "mac=%%a"  
    echo %mac%.bat  
    pause

     
    Батник не присвоил переменную мак адреса, или чего то не допонял или помоги.  
     
    Касательно первого варианта, список простой перечень макадресов 74 штуки с каждой строки новый адрес.
    Каждая строка типа номер машины.
     
     дома тоже ХР сп2 про английская с руским аплоадом, дома не проканал твой способ, завтро попробую на работе  
    Выручай, очень надо.

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Takuja
    1. Что выводит команда "ipconfig /all"?
    2. Дай пример списка адресов.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:40 12-02-2008 | Исправлено: Elroir, 01:42 12-02-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Takuja
    Дальше тебе поможет кто-нибудь другой - у меня до следующей недели не будет возможности добраться до компа.
     


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 04:11 12-02-2008 | Исправлено: Elroir, 04:12 12-02-2008
    MammothDEL

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Проститите.. такой вопрос
     
    в батнике есть следующие строки
     
    @Echo Приступить к копированию?
    @Echo y - да
    @set /P YES=%y
    @if /I "%YES%" == "y" goto UCopy
     
    При запуске в консоли выглядит так
     
    Приступить к копированию?
    y - да
    y(здесь мигает курсор)
     
    Как скрыть "y" перед курсором?
     
    ps Если "y" заменить на цифру (например "1"), то перед курсором она не появляется

    Всего записей: 272 | Зарегистр. 22-11-2005 | Отправлено: 05:15 12-02-2008
    king_stiven

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

    Код:
    @Echo Приступить к копированию?
    @Echo y - да
    @set /P YES=
    @if /I "%YES%" == "y" goto UCopy
     

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 07:12 12-02-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Takuja
     
    Если активно несколько интерфейсов, в переменной %mac% будет последний. Можно исправить для всех.

    Код:
     
    @echo off
    for /f "tokens=2 delims=:" %%i in ('ipconfig -all ^| findstr [A-Z0-9]-') do set mac=%%i
    set mac=%mac: =%
    echo %mac%
     

     
    И что надо сделать со списком?

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

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

    Код:
    Настройка протокола IP для Windows
            Имя компьютера  . . . . . . . . . : comp34
            Основной DNS-суффикс  . . . . . . : napalm.lo
            Тип узла. . . . . . . . . . . . . : гибридный
            IP-маршрутизация включена . . . . : нет
            WINS-прокси включен . . . . . . . : нет
            Порядок просмотра суффиксов DNS . : napalm.lo
     
    Подключение по локальной сети 2 - Ethernet адаптер:
     
            DNS-суффикс этого подключения . . :  
            Описание  . . . . . . . . . . . . : NVIDIA nForce Networking Controller
            Физический адрес. . . . . . . . . : 00-04-4B-80-80-03
            Dhcp включен. . . . . . . . . . . : нет
            IP-адрес  . . . . . . . . . . . . : 192.168.0.34
            Маска подсети . . . . . . . . . . : 255.255.255.0
            Основной шлюз . . . . . . . . . . : 192.168.0.254
            DNS-серверы . . . . . . . . . . . : 192.168.0.254
            Основной WINS-сервер  . . . . . . : 192.168.0.252
     

     
    есть другой способ получить мак например  
    getmac /fo csv /nh
    дает ответ типа  

    Код:
     
    "00-04-4B-80-80-03","\Device\Tcpip_{930A90EF-B366-42C2-A881-B6A88C922CE9},\Device\NwlnkIpx"

    Вот из этой строчки помогите средствами батника замутить переменную чисто с мак адресом. Это я как вариант предлагаю.  
    Есть какие нибудь регулярные выражения или разбивание по строкам?
     
    зжу ваших предложений.

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



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

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


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

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

    01MDM вот ответ твоего кода, что то там не то  
     

    Код:
     
    d:\>setlocal
    d:\>for /F "tokens=1" %i in ('getmac /nh') do set mac=%i
    d:\>set mac=00-04-4B-80-80-03
    d:\>set mac=\Device\NwlnkIpx
    d:\>echo \Device\NwlnkIpx
    \Device\NwlnkIpx
    d:\>pause
    Для продолжения нажмите любую клавишу . . .

     
    реально предыдущий присвоеный был мак адресом
    ДАЕШЬ ЦЫКЛ -1
    Говорите чё делать о великие гуру

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Takuja
    Покажи что у тебя выводит команда getmac /nh
    У меня так:

    Код:
     
    00-E3-4C-A2-02-EA   \Device\Tcpip_{950B7834-3FEC-44B3-AEDC-63B174539635}
     

     
    И не забывай:

    Цитата:
    Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!

     

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Да пробелы в моих батниках погоды не делают
    гетмак выводит еще и ветку \Device\NwlnkIpx  
    получается результат
    00-04-4B-80-80-03  \Device\Tcpip_{950B7834-3FEC-44B3-AEDC-63B174539635}, \Device\NwlnkIpx  
     
    Это вызвано тем что у меня установлен протокол IPX. Он использется многими приложениями в моей среде. Удаление протокола приводит вывод в нужный формат, но этот вариант отпадает.
     
    Шо теперь делать?

    Всего записей: 64 | Зарегистр. 11-02-2008 | Отправлено: 10:29 12-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