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

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день, прошу помочь с решением задачи.
    Условия задачи.
    Подробнее...
     
    Вот что родил я.
    Подробнее...
     
    Прошу помочь с ключом /a, и самое главное: как в choice вариант ответа "повесить" на клавишу F1?  
     
    Заранее благодарю.

    Всего записей: 1 | Зарегистр. 05-05-2010 | Отправлено: 10:39 05-05-2010
    user5nov

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите плиз ещё, что поменять или добавить чтобы воводился результат файла files.txt без пробелов?
     
    chcp 1251
    for /f "tokens=3*" %%a in ('dir c:\') do set "msg=%%b"  
    for /f "tokens=3"  %%s in ('dir /s/a-d "c:\5\*" ^| findstr /r /b /c:"[ ]" ^| find /v "%msg%" ') do set sizetxt=%%s  
    1>"files.txt" echo %sizetxt: =%

    Всего записей: 112 | Зарегистр. 19-10-2005 | Отправлено: 11:02 05-05-2010 | Исправлено: user5nov, 11:32 05-05-2010
    NIKZZZZ



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

    Цитата:
    что поменять или добавить чтобы воводился результат без пробелов?

    1>"files.txt" echo %sizetxt: =% в этой строке пробел перед "=" нужно заменить на символ с кодом 0xA0 , некоторые редакторы позволяют это сделать.
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 11:09 05-05-2010 | Исправлено: NIKZZZZ, 11:11 05-05-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    user5nov, я же тебе на предыдущей странице написал, что код на предпредыдущей подправлен на этот счет
     

    Код:
    for /f "tokens=3*" %%a in ('dir "%~f0"') do set "dir_txt=%%b"  
    for /f "tokens=3"  %%s in ('dir /s/a-d .\* ^| findstr /b /c:" " ^| find /v "%dir_txt%" ') do set "dir_txt=%%s"
    for /f "delims=0123456789" %%a in ("%dir_txt%") do call set "dir_txt=%%dir_txt:%%a=%%"
    1>file.txt echo %dir_txt%  

    в отличие от того варианта что тебе разжевывает NIKZZZZ (который сработает только в 866 кодировке с кодом 0хFF или только в 1251 кодировке c кодом 0xA0) тут просто вычисляется - какой сейчас код у разделителя.
     
    у меня то там пробел и прописан был неразрывный, я просто забыл что он через форум просто так не копируется и надо разъяснять
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:35 05-05-2010 | Исправлено: wolf0425, 12:58 05-05-2010
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    как эмулировать движение мыши в определенную область и нажать клавишу

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 13:43 05-05-2010
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 13:53 05-05-2010
    mouser

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

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 14:14 05-05-2010
    Mark_Titov



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

    Всего записей: 387 | Зарегистр. 12-04-2010 | Отправлено: 14:56 05-05-2010
    king_stiven

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

    Цитата:
    а как перед этим разблокировать комп. ???  

        ?
     
    Добавлено:
    Foxide
    goto это зло,  
    Попробуй так:
    if "%1"=="/a" (
      команда
      команда
           ...
    )
    if "%1"=="/b" (
      команда
      команда
           ...
    )

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 15:02 05-05-2010
    mouser

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

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 15:43 05-05-2010
    Joo1z



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто-нть может поделиться утилитками HS Tools вроде назывались. В сети уже нигде не найти.

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите, плиз, какими командами можно оперировать (добавлять\изменять) с системными переменными

    Всего записей: 66 | Зарегистр. 28-08-2007 | Отправлено: 16:09 05-05-2010 | Исправлено: duh_S, 16:22 05-05-2010
    soft111

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день, подскажите пожалуйста как с помощью bat файла можно удалить последние 45 строк из текстового файла, количество строк разное в каждом файле. Заранее спасибо.

    Всего записей: 25 | Зарегистр. 05-11-2009 | Отправлено: 16:24 05-05-2010
    wolf0425



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

    Цитата:
    Добрый день, подскажите пожалуйста как с помощью bat файла можно удалить последние 45 строк из текстового файла
    мне в свое время подсказали как удалить 3 последние строки

    Код:
    sed -n -e :a -e "1,3!{P;N;D;};N;ba" 1.txt > 2.txt


    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 17:01 05-05-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    soft111
    sed -n -e :a -e "1,45!{P;N;D;};N;ba" 1.txt > 5.txt
     
    mouser

    Цитата:
    комп. заблокирован

    не сталкивался

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 17:06 05-05-2010
    Mark_Titov



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

    Всего записей: 387 | Зарегистр. 12-04-2010 | Отправлено: 18:11 05-05-2010
    soft111

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

    Цитата:
    sed -n -e :a -e "1,45!{P;N;D;};N;ba" 1.txt > 5.txt

     
    А как сделать так чтобы файл 1.txt перезаписывался?

    Всего записей: 25 | Зарегистр. 05-11-2009 | Отправлено: 20:21 05-05-2010 | Исправлено: soft111, 20:23 05-05-2010
    korosya

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

    Цитата:
    korosya у тебя нечетное количество " в строке, это так и задумано - такой кривой второй парамтр батника?

     
    Да это такой кривой параметр, именно 3 штуки двойных кавычек. Но это обходится заданием в for параметра usebackq и в качестве символьной строки ('%*"')
     
    В принципе я догадался как сделать :
    Подробнее...
     
    Но не работает - почему-то не срабатывает команда set после команды if. Но если повторить тот же код, то всё получается:
    Подробнее...
     
    Но это как-то не аккуратно, да и не понятно почему не удвоенный код не работает?

    Всего записей: 1005 | Зарегистр. 19-07-2003 | Отправлено: 20:54 05-05-2010 | Исправлено: korosya, 21:18 05-05-2010
    Ortios



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

    Цитата:
    А как сделать так чтобы файл 1.txt перезаписывался?

    Забудь эту идею. Т.е. если очень хочется, сделать конечно можно. Но использовать надо sed 4.1.5. (не знаю есть ли новее).

    Код:
    sed -n -i -e :a -e "1,45!{P;N;D;};N;ba" 1.txt

    Вся фишка в том, что он некорректно работает с концами строк, делая их на манер юникса. Оно тебе надо?
    Я пользуюсь supersed-ом 3.62 (нормально работает с концами строк), но этот ключ (-i) там нормально не работает. Может в следующих версиях утилиты это поправят.

    Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 21:22 05-05-2010 | Исправлено: Ortios, 21:31 05-05-2010
    wolf0425



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

    Цитата:
    Вся фишка в том, что он некорректно работает с концами строк, делая их на манер юникса.
    использую GNU sed version 4.2 - к концами строк претензий вроде нет.
    а -i работает, но оставляет после себя мусор в каталоге.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 21:36 05-05-2010 | Исправлено: wolf0425, 21:37 05-05-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