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

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



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ну если в батниках нельзя использовать OR и AND то два вложенных IF. или переимновать оба исключения в другие файлы, потом удалить все, и переименовать два назад

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 23:44 25-08-2010 | Исправлено: bomzzz, 23:44 25-08-2010
    LunQ



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа программисты! Помогите батник написать плиз.
    Нужно брать текст для переменной из одного файла, но исключать его, если он встречается в другом.
    Как брать, я разобрался:
    for /F "delims=" %%i in (key.txt)  do start  /wait run.exe /%%i
    а как исключить не понимаю:
    содержание файла key.txt:
    ========
    adm
    hide
    hide+
    notext
    yes (и прочие ключи)
    ========
    содержание другого файла temp.txt:
    ========
    adm,режим администратора
    hide,свернуть (то есть нужно исключить то, что до запятой)
    ========
    тоесть в данной ситуации, файл run.exe, должен последовательно запускаться с одним из ключей hide+, notext, yes (содержание файла temp.txt изменчиво).

    Всего записей: 30 | Зарегистр. 12-10-2008 | Отправлено: 00:52 26-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    каждую строку потом надо findstr искать во втором файле

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 02:09 26-08-2010
    LunQ



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

    Цитата:
    каждую строку потом надо findstr искать во втором файле

    Потом - это как? Как это выглядит в целом?
    Я понимаю как искать строки до запятой в файле temp.txt:
    for /f "usebackq skip=2 tokens=1 delims=," %%i in (`find " " temp.txt`)  
    А как исключить найденные строки из переменной?

    Всего записей: 30 | Зарегистр. 12-10-2008 | Отправлено: 07:27 26-08-2010 | Исправлено: LunQ, 07:38 26-08-2010
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LunQ
    Fing и Findstr возвращают %ErrorLevel%. Нашли - 0, не нашли - соответственно, не 0.

    Цитата:
    [А как исключить найденные строки из переменной?]

    А зачем использовать эту переменную? Передавайте в первом цикле %%i по конвейеру в Find (или Findstr), а затем с учётом %ErrorLevel% в том же цикле For исключайте (или не исключайте) %%i.

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 07:50 26-08-2010 | Исправлено: BVV63, 07:52 26-08-2010
    01MDM



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

    Код:
     
    @echo off
    for /f "tokens=*" %%i in ('type key.txt') do 1>nul findstr "\<%%i\>" temp.txt || start /wait run.exe /%%i
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 07:59 26-08-2010 | Исправлено: 01MDM, 08:01 26-08-2010
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Давненько Вас не было видно. В отпуске были? Вы иногда навещаете тему по "PowerShell", я как раз начал его изучать. Запульнул туда пару вопросов, и больше недели тишина. Может Вы поможете?

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 08:07 26-08-2010 | Исправлено: BVV63, 08:07 26-08-2010
    LunQ



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

    Цитата:
    А зачем использовать эту переменную? Передавайте в первом цикле %%i по конвейеру в Find (или Findstr), а затем с учётом %ErrorLevel% в том же цикле For исключайте (или не исключайте) %%i.

    Как это выглядит, я не программист, напишите пожалуйста.
     
     
    Добавлено:
    01MDM
    оказывается регистр имеет значение, маленькие буквы не исключаются, если в другом файле большими указаны.

    Всего записей: 30 | Зарегистр. 12-10-2008 | Отправлено: 08:16 26-08-2010
    BVV63



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

    Цитата:
    Как это выглядит, я не программист, напишите пожалуйста.

    Так уже ответили.

    Цитата:
    оказывается регистр имеет значение

    Ключ /I заставляет Findstr игнорировать регистр. Т. е. используйте в конструкции, предложенной 01MDM, "Findstr /I".

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 08:23 26-08-2010 | Исправлено: BVV63, 08:26 26-08-2010
    01MDM



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

    Цитата:
    Давненько Вас не было видно. В отпуске были

    Скорее наоборот, на работе нет компьютера. Вот и сейчас тыркаю в экран смарта.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:47 26-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    может у него любовь, какие тут кампутиры  

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 09:50 26-08-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Слушайте, как с помощью xcopy скопировать файлы в каталог, которого пока нет?
    Иными словами, создать каталог. при использовании ключа /i все равно появляется запрос, типа мол целевое значение это файл или каталог? как его подавить? ключ /y на помогает

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 10:22 26-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    в хп так же что ли?
     
    echo Y|xcopy....   попробуй
    ну етот запрос нужен. чтоб различать файлы и папки
     
    Добавлено:
    или так  
    md mypapka
    xcopy papka mypapka

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 10:24 26-08-2010
    01MDM



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

    Цитата:
    как с помощью xcopy скопировать файлы в каталог, которого пока нет?


    Код:
     
    xcopy file.ext futurefolder\
     

    Слеш в конце.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:56 26-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    полезное замечание. надо аутоекзек.бат переписать на досах

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 11:11 26-08-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    bomzzz
    Спасибо
    и совсем уж дилетантский вопрос: как вызвать директорию в которой находится сам батник?

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 11:14 26-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    CD /D %~DP0
    в смысле вызвать. это сменить рабочую папку на тут где валяется батник

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 11:27 26-08-2010
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    Что значит "вызвать"? Вообще-то для батника родительский каталог "%~DP0" (без кавычек).
     
    Добавлено:
    Ага, уже ответили.

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 11:29 26-08-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz
    BVV63
    Не точно выразился. мне нужно применить атрибуты к каталогу где лежит сам батник

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 11:37 26-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    сменить атрибуты что ли?
    attrib в досе команда в батниках наверно тоже
     
    Добавлено:
    да аттриб. вот у меня батничег который лечит косяк за старой версией акронис ос селектора
    ECHO OFF
    COLOR 9F
    CLS
    ATTRIB +R +H +S C:\ntldr
    ATTRIB +R +H +S C:\boot.ini
    ATTRIB +R +H +S C:\BOOTWIZ\BOOT.INI /S
    ATTRIB +R +H +S C:\BOOTWIZ\NTLDR /S
    PAUSE

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 11:55 26-08-2010 | Исправлено: bomzzz, 11:55 26-08-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