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

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

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

vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

vu1tur



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

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<<>>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 12:40 25-01-2010 | Исправлено: bomzzz, 13:37 20-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    да никак, пока не верю что оно заработает. да я не особо с ним прозамыкал.  
     
    Добавлено:
    http://www.mbuilder.jino-net.ru/faq/masmwin32.html#W32 готовый код нашел, с двумя ошибками правда

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 23:25 01-09-2010
    01MDM



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

    Цитата:
    готовый код нашел

    Это имеет какое-то отношение к батникам? К чему тему забивать оффтопом.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 07:58 02-09-2010
    Maximus777

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите советом, надо определить букву диска (привода), само-собой на разных компах оно отличается. Надо так, вставляем диск в привод, запускаем батник (с харда), он ищет компакт и когда находит далее работает с ним (копирует файлы). На компакте всегда в корне есть определённые файлы, всегда с одними и теми же именами (к примеру File1.exe). Можно конечно и на компакт ложить батник, но хотелось бы и с харда.

    Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 11:00 02-09-2010
    Joo1z



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

    Код:
    wmic CDROM get Drive /value

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 11:12 02-09-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maximus777, а тебе точно нужно было обязательно сдром определять?
    если флешку с теми же файлами воткнуть - её определять не нужно?
     
    к рецепту от Joo1z не поленись прикрутить проверку наличия файлика, сдромов в системе может быть и более одного
     

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 11:19 02-09-2010 | Исправлено: wolf0425, 11:20 02-09-2010
    Maximus777

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    не, у мну работа с компакт-дисками. Растаскиваю клиентам обновления. И в том то и засада, что привод может быть не один, да и букву иметь всяческую.
     
    Добавлено:
    Joo1z
    да, с одним приводом отлично работает. А если два будет? Негде щас проверить. Они просто перечислятся?

    Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 11:27 02-09-2010 | Исправлено: Maximus777, 11:29 02-09-2010
    VV2006

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

    Цитата:
    с одним приводом отлично работает. А если два будет?
    Без разницы, хоть сколько. Это про саму команду wmic CDROM get Drive /value.  

    Цитата:
    На компакте всегда в корне есть определённые файлы, всегда с одними и теми же именами (к примеру File1.exe). Можно конечно и на компакт ложить батник, но хотелось бы и с харда.
    С компакта удобнее батничек сгородить используя %~dp0, и буква пофиг. А для варианта запуска батника с харда нужно дополнительно организовать выбор диск по маркерному файлу.

    Всего записей: 2158 | Зарегистр. 10-02-2006 | Отправлено: 11:39 02-09-2010 | Исправлено: VV2006, 11:51 02-09-2010
    Maximus777

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

    Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 11:47 02-09-2010
    us0r



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VV2006
    А для использаования WMIC прав пользователя хватит?

    Всего записей: 407 | Зарегистр. 06-12-2007 | Отправлено: 13:15 02-09-2010
    BVV63



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

    Цитата:
    А для использаования WMIC прав пользователя хватит?

    Смотря для какого. Чтобы какую-нить информацию получить с использованием WMIC - да. А вот ежели какие-нить изменения вносить - может не хватить, зависит от типа этих изменений.

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 13:27 02-09-2010 | Исправлено: BVV63, 13:27 02-09-2010
    Maximus777

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите ещё один нюанс, при использовании конструкции:

    Код:
    for /F "usebackq delims=" %%i in (`Find /I "%Key%=" %FileToRead%`)

    как найти ключ ini-файла? Формат у инишника такой:

    Код:
    [razdel: name]
    vol1=value1
    vol2=value2
     
    [razdel: name2]
    vol1=value3
    vol2=value4

     
    Как выловить оттуда value1?

    Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 15:02 02-09-2010 | Исправлено: Maximus777, 15:04 02-09-2010
    wolf0425



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

    Цитата:
    да, с одним приводом отлично работает. А если два будет?
    то напечатает две строки.
    На самом деле - больше, просто остальные пустые и for их поскипает.
     
    кто-нибудь знает способ проверить отсутствие вставленного диска в СДроме - так чтобы система (win7) не ругнулась?

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 15:15 02-09-2010 | Исправлено: wolf0425, 15:17 02-09-2010
    us0r



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    for /f %%i in ('find param') do set var=%%i

    Всего записей: 407 | Зарегистр. 06-12-2007 | Отправлено: 15:16 02-09-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли вторым батником менять title первого батника?

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 15:16 02-09-2010
    Joo1z



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maximus777
    При совпадении %key% и %vol1% значение переменной %%i будет равно value1.
    В чем проблема?

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 15:16 02-09-2010
    Maximus777

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Joo1z
    в том, что value3 даст такое же совпадение.

    Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 15:23 02-09-2010 | Исправлено: Maximus777, 15:23 02-09-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Joo1z
    Цитата:
    В чем проблема?
    в одноименных ключах vol1 в разных секциях инишника.
    а он хочет значение из конкретной.
     
    Добавлено:
    Maximus777 не халявь, делай нормальный разбор с запоминанием имени секции.
    Ну или sed'ом секцию вырежи перед поиском. или вместо поиска.

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 15:24 02-09-2010 | Исправлено: wolf0425, 15:27 02-09-2010
    Maximus777

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    ну ... вобщем ... хотелось схалявить
    Было бы просто замечательно, если можно при нахождении имени раздела, вытянуть следующую строку. А там бы я уже разобрался.

    Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 15:33 02-09-2010 | Исправлено: Maximus777, 15:37 02-09-2010
    wolf0425



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

    Код:
    for /f %%a in (' sed -r -n "/^\[razdel: name1\]/,/^\[.*\]/ s/^vol1=(.*)/\1/p" ^<file.ini ') do echo set name1_vol1=%%a  

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 15:35 02-09-2010 | Исправлено: wolf0425, 15:53 02-09-2010
    Joo1z



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

    Цитата:
    в том, что value3 даст такое же совпадение.

    Да... промограл. SED в помощь.

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 15:38 02-09-2010
       

    Страницы: 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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 8
    vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru