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

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

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

    Цитата:
    хочется нажать кнопку и чтоб машина за тебя работала

    Золотые слова! Но задача не для батника, разве некоторые утилитки через батник.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 07:34 23-10-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    через rundll32, nircmd, nncron некоторые окошки можно вызвать а уж галки проставить ручками. Команда Reg поможет напрмую в реестр прописать.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 11:16 23-10-2009 | Исправлено: king_stiven, 11:29 23-10-2009
    VisioNRU

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    пока видится такой вариант:
     регмоном отыскивать изменения в реестре,  и затем батником либо дописывать либо импортировать регфайлы

    Всего записей: 14 | Зарегистр. 17-10-2009 | Отправлено: 20:06 23-10-2009
    Black Gate

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день!  
    Помогите написать бат файл. В Win 7 есть виртуальный диск (VHD).Нужно его смонтировать с помощью diskpart. Пробовал вот так:
    @echo off
    echo  select vdisk file=c:\xxx.vhd | diskpart
    echo attach vdisk | diskpart  
     
    диск выбирает, но не монтирует.

    Всего записей: 8 | Зарегистр. 17-12-2007 | Отправлено: 11:41 24-10-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Black Gate
    У тебя не получается потому, что ты передаешь команды в разные сессии diskpart, выполняя вторую команду, он уже ничего не помнит о первой. Попробуй так:

    Код:
     
    @echo off
    1>diskpart.txt (
        echo  select vdisk file=c:\xxx.vhd
        echo attach vdisk
        echo exit
    )
    diskpart /s diskpart.txt
    del diskpart.txt
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:54 24-10-2009
    Black Gate

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо за помощь .Всё заработало!

    Всего записей: 8 | Зарегистр. 17-12-2007 | Отправлено: 12:55 24-10-2009
    mugil_cephalus

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

    Цитата:
    1>diskpart.txt (  
        echo  select vdisk file=c:\xxx.vhd  
        echo attach vdisk  
        echo exit  
    )

    в bat'e должно быть так как выше или:
    1>diskpart.txt (echo  select vdisk file=c:\xxx.vhd echo attach vdisk echo exit)
    во втором случае: тогда почему нет амперсанда между echo?
     
    P.S.
    глянь, если не внапряг, мой меседж http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=1060#21 (может сталкивался с чем-то подобным, - просто я не сисадминю)

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 14:10 24-10-2009 | Исправлено: mugil_cephalus, 14:19 24-10-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mugil_cephalus
     
    По поводу анимации в бат-файлах ничего не могу сказать. За исключением того, что есть программы, которые могут сконвертировать видео в ancii. В частности mplayer под linux (если есть libcoco и если не ошибаюсь) может сделать вывод в знаковом формате. Если вы что-то где-то видели, то скорее всего надо писать программу, способную вывести в консоль видео в данном стандарте. Возможность "аниме" путем `cls`-`новый кадр` не рассматриваю, но в принципе возможно.  

    Цитата:
    просто я не сисадминю

    А здесь что сисадмины живут? Я даже близко не подходил.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 17:20 24-10-2009 | Исправлено: 01MDM, 17:30 24-10-2009
    mugil_cephalus

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

    Цитата:
    А здесь что сисадмины живут? Я даже близко не подходил.

    я предполагал - сисадмины/айтишники и любители/самоучки (хобби) - я же не то , не другое.. (не рыба, не мясо )

    Цитата:
    По поводу анимации в бат-файлах ничего не могу сказать. За исключением того, что есть программы, которые могут сконвертировать видео в ancii. В частности mplayer под linux может сделать вывод в знаковом формате. Если вы что-то где-то видели, то скорее всего надо писать программу, способную вывести в консоль видео в данном стандарте.

    не, мне это "до лампочки"

    Цитата:
    Возможность "аниме" путем `cls`-`новый кадр` не рассматриваю, но в принципе возможно.

    я этого нигде не встречал, но просто в голову пришла идея - теоретически можно же любое изображение (символьно-графическое), которое способно отразить echo'om  (технологически, схоже - как рисованный вручную мультфильм - покадрово или пластилиновый мульт.) - при помощи cls и зацикливания - превратить в подвижное (вот и написал для примера маленький скрипт - чтоб пояснить свою мысль для наглядности) Тот же file_id.diz можно анимировать. Или messages для user'a. Или любой заголовок у bat-crack'ov. Вот и стало любопытно, может у кого опыта компьютерного много  (кто многое повидал ) встречался с таким. Я, конечно же, поленюсь писать такую анимацию, - это ж как в рисованном мультфильме изображать по 1000 рисунков с одним-двумя изменениями для 1-2 секунд просмотра, а хакеры - люди тщеславные - может и не поленятся... Да и те же програмисты, кто наряду с производительностью, любят и выразительность, типа:
    :Syntax
    ECHO DateDiff.bat,  Version 1.10 for Windows NT 4 / 2000 / XP / Server 2003 / Vista
    ECHO Calculate the difference (in days) between two dates
    ECHO.
    ECHO Usage:  DATEDIFF  date  [ date ]
    ECHO.
    ECHO Where:  "date"  is a "normal" Gregorian date in the local computer's format;
    ECHO                 if no second date is specified, today is assumed
    ECHO.
    ECHO Julian date conversion based on Fliegel-Van Flandern algorithms from
    ECHO the Astronomical Almanac, provided by Doctor Fenton on the Math Forum
    ECHO (http://mathforum.org/library/drmath/view/51907.html), and converted
    ECHO to batch code by Ron Bakowski.
    ECHO Bug found by and converted with help from Alexander Shapiro.
    ECHO.
    ECHO Written by Rob van der Woude
    ECHO http://www.robvanderwoude.com
     
    или
     
    -============================================================-  
     
                  S$$$$$Ss.          Ss.           .sS
                  $$$   $$$        ІІ$$$ІІ         $$$
         .sS$$$$S $$$   $$$ .sS$$$$S $$$ .sS$$$$Ss $$$.sS$Ss
              $$$ $$$   $$$      $$$ $$$ $$$   SІ' $$$  `$$$
        sS$Ss.$$$ $$$.sSSІ'sS$Ss.$$$ $$$ $$$       $$$   $$$
        $$$'  $$$ $$$      $$$'  $$$ $$$ $$$       $$$   $$$
        $$$   $$$ $$$      $$$   $$$ $$$ $$$   gS$ $$$   $$$
        S$$Ss.$І' `ІS      S$$Ss.$І' `ІS S$$.sSSІ' SІ'   `ІS
                                                 Aug'04 CW2K
             --[ Windows 2003 & XP WPA-Patch 1.6 ]--
     
            For people who don't like begging Mircosoft
                    for activating their Windows.
     
    -============================================================-
     
    - я, конечно же не говорю про анимирование мини-мульта, но скачущий по экрану author name или author URL, да не в GUI, не в скомпилированном *.exe, а в обычном консольном окне на лузера, думаю, произведет эффект (это работы ж на 5 мин.: с десяток echo и cls, зацикливание и count)
     
    Резюмируя, вот и любопытно - в теории - хоть "Про пластилиновую ворону" можно за полгода соскриптить в батник, а  

    Цитата:
    но скачущий по экрану author name или author URL, да не в GUI, не в скомпилированном *.exe, а в обычном консольном окне на лузера, думаю, произведет эффект (это работы ж на 5 мин.: с десяток echo и cls, зацикливание и count)
    - как говориться in the wild (если не ошибаюсь) встречается???

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 18:10 24-10-2009 | Исправлено: mugil_cephalus, 18:38 24-10-2009
    graphruboard

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Каким образом посчитать количество символов в строке в bat-файле?

    Всего записей: 1 | Зарегистр. 15-01-2007 | Отправлено: 18:11 24-10-2009
    DrSqaer



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток, почему так тормозит команндная строка? Тупая команда ping localhost отжирает 50% проца и выполняется как минимум секунд 20.
    Windows 7 64bit

    Всего записей: 171 | Зарегистр. 16-01-2006 | Отправлено: 18:45 24-10-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mugil_cephalus
    Это скорее вопрос к людям с художественными наклонностями. У меня дружок за пару, ручкой,  по памяти, рисовал храм Христа Спасителя.
     

    Цитата:
    Каким образом посчитать количество символов в строке в bat-файле?

    Поскольку в бат-файлах отсутствуют свойства и методы, то придется считать на пальцах:

    Код:
     
    @echo off
    setlocal
    set "string=some string"
    1>string.tmp 0>nul set /p="%string%"
    for %%i in (string.tmp) do echo %%~zi
    del string.tmp
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:49 24-10-2009
    NIKZZZZ



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

    Цитата:
    Возможность "аниме" путем `cls`-`новый кадр` не рассматриваю

    Ну, это не сосем то.
    Получить  "аниме" можно выбрасывая управляющие коды, обновляя только то, что нужно.  
    Для вывода можно использовать Sbs2.com, которая позволяет заменить любую последовательность символов на другую (не ASC символы поддержаны)
     
    Пример Echo без перевода строк:

    Код:
    @echo off
     
    echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>sbs2.com
    echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU!WvX0GwUY Wv;ovBX2Gv0ExGIuht6>>sbs2.com
    echo ?@}IKuNWpe~Fpe?FNHlF?wGMECIQqo{Ox{T?kPv@jeoSeIlRFD@{AyEKj@>>sbs2.com
    echo iqe~1NeAyR?mHAG~BGRgB{~H?o~TsdgCYqe?HR~upkpBG?~slJBCyA?@xA>>sbs2.com
    echo LZp{xq`Cs?H[C_vHDyB?Hos@QslFA@wQ~~x}viH}`LYNBGyA?@xAB?sUq`>>sbs2.com
    echo LRy@PwtCYQEuFK@A~BxPtDss@fFqjVmzD@qBEOEenU?`eHHeBCMs?FExep>>sbs2.com
    echo LHsPBGyA?@xAunjzA}EKNs@CA?wQpQpKLBHv?s`WJ`LRCYyIWMJaejCksl>>sbs2.com
    echo H[GyFGhHBwHZjjHeoFasuFUJeHeB?OsQH[xeHCPvqFj@oq@eNc?~}Nu??O>>sbs2.com
    echo ~oEwoAjBKs?Zp`LBzHQzyEFrAWAG{EFrAqAGYwHTECIQ{coKIsaCsf{Oe~>>sbs2.com
    echo CK}Ayre~CNFA{rAyEKFACrA{EKGAjbA}eKGSjNMtQFtc{OAyDGFj?{FDGQ>>sbs2.com
    echo KAjNVk_OCAx@e?f{o?CosI}1EGizhljJ~H1ZeG}JBA~rACBMDGjjDG@g0>>sbs2.com
     
    Echo 123|sbs2.com 0 "$0d$0a" ""  
    Echo 345|sbs2.com 0 "$0d$0a" ""  
     
    pause

     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 19:03 24-10-2009 | Исправлено: NIKZZZZ, 19:12 24-10-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
     
    Цитата:
    1>diskpart.txt (  
        echo  select vdisk file=c:\xxx.vhd  
        echo attach vdisk  
        echo exit  
    )  
     
    в bat'e должно быть так как выше или:  
    1>diskpart.txt (echo  select vdisk file=c:\xxx.vhd echo attach vdisk echo exit) - одной строкой  
    во втором случае: тогда почему нет амперсанда между echo?
     
    я с синтаксисом так и не понял: можно сгруппированные скобками () команды разделять на нескольео строк или это софт форума так отредактировал скрипт (как с пробелами на конце строк)??
     
    Добавлено:
    NIKZZZZ

    Цитата:
    Резюмируя, вот и любопытно - в теории - хоть "Про пластилиновую ворону" можно за полгода соскриптить в батник, а  
     
    Цитата:но скачущий по экрану author name или author URL, да не в GUI, не в скомпилированном *.exe, а в обычном консольном окне на лузера, думаю, произведет эффект (это работы ж на 5 мин.: с десяток echo и cls, зацикливание и count)  
    - как говориться in the wild (если не ошибаюсь) встречается???
    - это моя цитата выше. А ты "в дикой природе" встречал подобные батники??...

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 19:18 24-10-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Еще есть ansicon.exe. Которая позволяет в консоли выполнять esc-последовательности, в том числе и забой символа. У меня дюжина батников с ее использованием, пример:
     

     
     
    Добавлено:
    mugil_cephalus
    Нет, не одной строкой, просто можно сгруппировать `echo' и вывести все разом в файл:

    Код:
     
     
    1>1.txt (
       echo 1
       echo 2
    )
     
    Или
     
    (
       echo 1
       echo 2
    ) >1.txt
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:30 24-10-2009 | Исправлено: 01MDM, 19:31 24-10-2009
    VisioNRU

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    приветвую ВАС!
     задачка такая.  
     
    необходимо проверить  нумерацию Com-портов. если она не по порядку то переименовать в com1, com2 и тд.
    заранее спасибо

    Всего записей: 14 | Зарегистр. 17-10-2009 | Отправлено: 19:57 24-10-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VisioNRU
    а какой вывод у команды c:\>mode у тебя?

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 20:49 24-10-2009
    VisioNRU

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    дело в том что это необходимо будет делать на др. компах..у меня laptop тут вообще ком-портов нету. ну  а так выводит:
    Status for device con:
    -------------------------
    Lines:               300
    Columns:            80
    Keyboard rate:     31
    Keyboard delay:   1
    codepage:          866
     
    =) в

    Всего записей: 14 | Зарегистр. 17-10-2009 | Отправлено: 23:00 24-10-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VisioNRU
    класс! а у меня всего один com

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 23:34 24-10-2009
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть большое количество раскиданных по папкам директории типа -= DIR =-
    где они находятся и вложенность в каталогах не известна  
     
    задача: нужно чтоб папки типа -= DIR =- найти автоматом и переименовать в ! DIR
     
    на чём это можно сделать и как не представляю (давно не лазил в подобные дебри)
     
    Добавлено:
    нужен лог переименованных каталогов

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 23:55 24-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