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

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Коллеги, подскажите плз, как проверить на пинг комп, если он есть то подключить сетевой диск.
    Вот тут был пример http://forum.ru-board.com/topic.cgi?forum=62&topic=6156&start=220#18 но не совсем что нада
     
    Придумал вот такой вариант
    ping srv1 > nul && подключаем диск || говарим, вставьте кабель
     
    Кто знает вариант получше? Желательно с циклом, чтобы проверка продолжалась дальше, если кабель не воткнут.

    Всего записей: 81 | Зарегистр. 11-04-2006 | Отправлено: 10:49 30-09-2009 | Исправлено: zett, 11:01 30-09-2009
    01MDM



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

    Код:
     
    @echo off
    1>nul ping -n 1 \\Comp && net use z: \\Comp\Resource || echo \\Comp not available at time
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:57 30-09-2009
    zett



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Нифига ты меня на пол секунды опередил)
    А с цыклом знаешь как лучше?

    Всего записей: 81 | Зарегистр. 11-04-2006 | Отправлено: 11:02 30-09-2009
    01MDM



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

    Цитата:
    А с цыклом знаешь как лучше?

    Не понял на счет цикла. Нужно несколько сетевых дисков?
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:11 30-09-2009
    zett



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

    Цитата:
    Не понял на счет цикла. Нужно несколько сетевых дисков?

     
    Да не! Просто на ноуте может быть кабель сетевой не подключен, надо чтоб в этом случае пинг зацикливался, и писал подключите кабель. Кабель подключает и пошло поехало )

    Всего записей: 81 | Зарегистр. 11-04-2006 | Отправлено: 11:17 30-09-2009
    01MDM



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

    Код:
     
    @echo off
    :check
    1>nul ping -n 2 \\Comp && net use z: \\Comp\Resource || echo bla-bla-bla && goto:check
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:20 30-09-2009
    zett



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

    Цитата:
    Я просто не прочитал твое исправление.

    Так уже похоже на правду, но он заклевает блаблабла, а когда кабель втыкаешь просто останавливается.
     
    Не, гоню, все норм!))
    А можно както сделать чтобы блаблабла не зацикливалось, а просто один раз напилало и все?

    Всего записей: 81 | Зарегистр. 11-04-2006 | Отправлено: 11:25 30-09-2009 | Исправлено: zett, 11:27 30-09-2009
    NIKZZZZ



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

    Цитата:
    чтобы блаблабла не зацикливалось, а просто один раз напилало и все?

    Добавь Cls перед echo bla-bla-bla, получится мигающее bla-bla-bla.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 11:42 30-09-2009
    zett



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

    Цитата:
    Добавь Cls перед echo bla-bla-bla, получится мигающее bla-bla-bla.

     
    Отличный вариант! Пасибо)

    Всего записей: 81 | Зарегистр. 11-04-2006 | Отправлено: 11:44 30-09-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    повторю свой вопрос с 48-ой страницы, может кто знает??...
     

    Цитата:
    А можно как то коммандной строкой вызвать для просмотра коды из *.DLL-ов ?  
    А то у меня получается только для printui.dll:  
     
    C:\>rundll32 printui.dll,PrintUIEntry /?  
     
    вот вывод:  
    Использование: rundll32 printui.dll,PrintUIEntry [параметры] [@командный файл]  
       /a[имя_файл] имя двоичного файла  
       /b[имя] основное имя принтера  
       /c [имя] UNC-имя компьютера, где выполняется команда  
       /dl удаление локального принтера  
       /dn удаление подключения к сетевому принтеру  
       /dd удаление драйвера принтера  
       /e вывод параметров настройки печати  
       /f[file] или информационный файл, или выходной файл  
       /ga добавление подключений компьютеров к принтеру  
       /ge перечисление подключений компьютеров к принтеру  
       /gd удаление подключений компьютеров к принтеру  
       /h[arch] Архитектура драйвера для: Alpha | Intel | IA64 | х64  
       /ia установка драйвера принтера с помощью информационного файла  
       /id установка драйвера принтера с помощью мастера установки драйверов принтеров  
       /if установка принтера с помощью информационного файла  
       /ii установка принтера с помощью мастера установки принтеров и информационного файла  
       /il установка принтера с помощью мастера установки принтеров  
       /in добавление подключения к принтеру  
       /j[provider] имя системы печати  
       /k печать пробной страницы на выбранном принтере, не может использоваться с другими командами установки принтера  
       /l[path] путь к исходному размещению драйвера принтера  
       /m[model] имя модели драйвера принтера  
       /n[name] имя принтера  
       /o показать очередь заданий на печать  
       /p отображение свойств принтера  
       /q скрытый режим без вывода сообщений об ошибках  
       /r[port] имя порта  
    .........................  
     
    и т.д.

     
     
    Добавлено:
    про http://dx21.com/coding/libraries/rundll32/default.aspx знаю, но там уже готовые результаты выложены, а других DLL-библиотек еще же куча....
     
    Добавлено:
    и еще вопрос autoIt платная?

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 15:08 30-09-2009
    wolf0425



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

    Цитата:
    Подскажите, возможно ли из командной строки изменить версию файла?  
    Сильно зависит от того что ты понимаешь под версией файла и что за файл.

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 15:23 30-09-2009 | Исправлено: wolf0425, 15:27 30-09-2009
    Simoid



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Помогите реализовать следующее...
     
    В рамках решения вопроса:
    http://forum.ru-board.com/topic.cgi?forum=8&topic=34377
     
    возникла гениальная идея написать батник с такими задачами:
     
    1) Проверяем любой уникальный ID железа на ПК
    2) Если совпадает с тем, что прописан в батнике - закрываемся
    3) Если не совпадает - удаляем какие то важные системные файлы, чтобы ОС больше не загрузилась. После удаления перегружаем ПК...
     
    Задача написана коряво - сам смутно понимаю процесс. Ясна только теория...
     
    Хотелось бы получить готовый батник, который откомпилирую в EXE-файл и пропишу в сервисы, как служба.
     
    Буду благодарен за любую консультацию.
     
     

    Всего записей: 1048 | Зарегистр. 23-07-2005 | Отправлено: 17:15 30-09-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    evle
    по поводу http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&start=840

    Цитата:
    ViSiToR  
     
    Цитата:Как переменную вывести в виде сокращённого пути? или как преобразовывать обычны путь в коротки?    
     
    Из справки к for:  
    %~fsI Expands %I to a full path name with short names only.  
    Точно так же можно обрабатывать параметры, переданные батнику (%~fs1). Что делать дальше, думаю, понятно. Сделать без привлечения for, видимо, нельзя.

     
    а если запросить короткий путь у command.com и результат возвратить в батник?
    P.S.
    прошу прощения, может несвоевременно - постепенно и разбираясь читаю дерево темы "Задачи на bat-файлах" (сейчас на 2-ой части 43-ей странице).

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 17:29 30-09-2009 | Исправлено: mugil_cephalus, 17:56 30-09-2009
    01MDM



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

    Цитата:
    а если запросить короткий путь у command.com и результат возвратить в батник?

    А зачем? Что так, что эдак:

    Код:
     
    @echo off
    for /f %%i in ('command /c cd') do echo %%i
    for /f "tokens=*" %%i in ('cd') do echo %%~si
    call:1 "%cd%"
    goto:eof
     
    :1
    echo %~s1
     

     
    Simoid

    Цитата:
    1) Проверяем любой уникальный ID железа на ПК  

    wmic /? - но с натяжкой, не всё покажет - зависит от конкретного железа

    Цитата:
    3) Если не совпадает - удаляем какие то важные системные файлы, чтобы ОС больше не загрузилась. После удаления перегружаем ПК...

    Радикально...

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:39 30-09-2009 | Исправлено: 01MDM, 18:44 30-09-2009
    korosya

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

    Цитата:
    Сильно зависит от того что ты понимаешь под версией файла и что за файл.

    Файл - AkelPad.exe. Версия файла - в ресурсх - "FileVersion" "4.3.2.0"
     
     

    Всего записей: 1008 | Зарегистр. 19-07-2003 | Отправлено: 23:50 30-09-2009
    Alexeyfan

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    NIKZZZZ
    Спасибо за ответы, буду пробовать.

    Всего записей: 29 | Зарегистр. 24-09-2009 | Отправлено: 00:36 01-10-2009
    Shylock

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа, возникла крайняя необходимость вести логи комманд, а также хода их выполнения. Т.е. помимо вывода результатов в окно консоли, дублировать их выводом в текстовый файл.
    Как такое провернуть?
     
    Спасибо.

    Всего записей: 3 | Зарегистр. 27-09-2009 | Отправлено: 01:30 01-10-2009
    wolf0425



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

    Цитата:
    Файл - AkelPad.exe. Версия файла - в ресурсх - "FileVersion" "4.3.2.0"  
    Поясни - зачем менять прописанный автором номер версии у файла?
    Какое тебе счастье что ты поменяешь в ресурсах 4.3.2.0 на какой-нибудь  4.3.2.1 - от этого же количество багов не поменяется (в отличие от установки нормального 4.3.2.1)
     
    а вообще ссылка на патчилку бинарников - тут недавно мелькала, осталось придумать способ вычисления места замены.
     

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 04:29 01-10-2009
    GRom V

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

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 07:39 01-10-2009 | Исправлено: GRom V, 07:48 01-10-2009
    korosya

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

    Цитата:
    Поясни - зачем менять прописанный автором номер версии у файла?  
    Какое тебе счастье что ты поменяешь в ресурсах 4.3.2.0 на какой-нибудь  4.3.2.1 - от этого же количество багов не поменяется (в отличие от установки нормального 4.3.2.1)

    Это я привёл для примера. Вообще-то мне надо заменить "AkelPad text editor" на "Блокнот". Это я хочу сделать для того, чтобы здесь не использовать AutoIt/

    Всего записей: 1008 | Зарегистр. 19-07-2003 | Отправлено: 08:01 01-10-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.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru