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

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

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

vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 16:59 14-11-2006 | Исправлено: Elroir, 04:30 26-04-2007
    Elroir



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

    Цитата:
    Вопрос: можно ли как нибудь в начале батника прописать опции чтобы оно было фиксированно размена и не изменялось не при каких условиях?

    Можно попробовать такую строчку:

    Код:
     
    mode con cols=80 lines=25
     

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:18 11-12-2006 | Исправлено: Elroir, 20:29 11-12-2006
    Kirillhome



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Jon_Dow
    Простейшее преобразование текстового файла в HTML  - не поможет?
    Если поможет - то, к примеру, так:
     

    Код:
     
    @echo off
    echo ^<HTML^> > 123.htm
    echo ^<META http-equiv=Content-Type content="text/html; charset=windows-866"^> >> 123.htm
    echo ^<BODY^> >> 123.htm
    echo ^<PRE^> >> 123.htm
    copy 123.htm+%1 123.htm  
    echo ^</PRE^> >> 123.htm
    echo ^</BODY^> >> 123.htm
    echo ^</HTML^> >> 123.htm
     

     
    Я понимаю, что задача ставилась другая, но - возможно это тоже когото обрадует...
     
    Полноценная же перекодировка "голыми" средствами bat-файлов (без сторонних утилит) - затруднительна из-за возможности появления в строках спец-символов...

    Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 20:26 11-12-2006
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Инфа полезная. А может тогда действительно замутить help на htm? тогда только еще рубрикатор прикрутить надо будет... Но поиск по нему станет неудобным...
    Вообще хотелось бы чтоб красиво и в одну строку да еще с возможностью выбора кодировки...

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 20:33 11-12-2006
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    И всё таки я не понял, как при помощи батника заменить слова в тексте...скажем в C:\Windows\inf\sysoc.inf файле, заменить все HIDE на пустую строчку...или на какое нибудь другое слово, кто нибудь может показать на примере?

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 13:20 12-12-2006
    Levitant



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

    Код:
    @echo off
    :: Create the assembler program, by Herbert Kleebauer
    echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=> %temp%.\sbs2.com
    echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU!WvX0GwUY Wv;ovBX2Gv0ExGIuht6>> %temp%.\sbs2.com
    echo ?@}IKuNWpe~Fpe?FNHlF?wGMECIQqo{Ox{T?kPv@jeoSeIlRFD@{AyEKj@>> %temp%.\sbs2.com
    echo iqe~1NeAyR?mHAG~BGRgB{~H?o~TsdgCYqe?HR~upkpBG?~slJBCyA?@xA>> %temp%.\sbs2.com
    echo LZp{xq`Cs?H[C_vHDyB?Hos@QslFA@wQ~~x}viH}`LYNBGyA?@xAB?sUq`>> %temp%.\sbs2.com
    echo LRy@PwtCYQEuFK@A~BxPtDss@fFqjVmzD@qBEOEenU?`eHHeBCMs?FExep>> %temp%.\sbs2.com
    echo LHsPBGyA?@xAunjzA}EKNs@CA?wQpQpKLBHv?s`WJ`LRCYyIWMJaejCksl>> %temp%.\sbs2.com
    echo H[GyFGhHBwHZjjHeoFasuFUJeHeB?OsQH[xeHCPvqFj@oq@eNc?~}Nu??O>> %temp%.\sbs2.com
    echo ~oEwoAjBKs?Zp`LBzHQzyEFrAWAG{EFrAqAGYwHTECIQ{coKIsaCsf{Oe~>> %temp%.\sbs2.com
    echo CK}Ayre~CNFA{rAyEKFACrA{EKGAjbA}eKGSjNMtQFtc{OAyDGFj?{FDGQ>> %temp%.\sbs2.com
    echo KAjNVk_OCAx@e?f{o?CosI}1EGizhljJ~H1ZeG}JBA~rACBMDGjjDG@g0>> %temp%.\sbs2.com
    :: Use the program
    %temp%.\sbs2.com 0 "что заменить" "на что" < "какой_фаил" > "Куда записать. пусть вместе с имнем файла"
    :: Delete the program
    del %temp%.\sbs2.com
     

     
    Вопрос: надо удалить все файлы от туда C:\WINDOWS\Driver Cache\i386
    Как написать удалялку с конкретного пути я знаю, но проблема в том, что система на разных дисках. Как можно указать пусть без диска начиная с папки виндоус? Помогите пожалуйста.
     
    Добавлено:
    Maza Faka
    Мне то же самое надо что тебе, свою проблему я решил так, работает:

    Код:
     
    @echo off
    :: Create the assembler program, by Herbert Kleebauer
    echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=> %temp%.\sbs2.com
    echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU!WvX0GwUY Wv;ovBX2Gv0ExGIuht6>> %temp%.\sbs2.com
    echo ?@}IKuNWpe~Fpe?FNHlF?wGMECIQqo{Ox{T?kPv@jeoSeIlRFD@{AyEKj@>> %temp%.\sbs2.com
    echo iqe~1NeAyR?mHAG~BGRgB{~H?o~TsdgCYqe?HR~upkpBG?~slJBCyA?@xA>> %temp%.\sbs2.com
    echo LZp{xq`Cs?H[C_vHDyB?Hos@QslFA@wQ~~x}viH}`LYNBGyA?@xAB?sUq`>> %temp%.\sbs2.com
    echo LRy@PwtCYQEuFK@A~BxPtDss@fFqjVmzD@qBEOEenU?`eHHeBCMs?FExep>> %temp%.\sbs2.com
    echo LHsPBGyA?@xAunjzA}EKNs@CA?wQpQpKLBHv?s`WJ`LRCYyIWMJaejCksl>> %temp%.\sbs2.com
    echo H[GyFGhHBwHZjjHeoFasuFUJeHeB?OsQH[xeHCPvqFj@oq@eNc?~}Nu??O>> %temp%.\sbs2.com
    echo ~oEwoAjBKs?Zp`LBzHQzyEFrAWAG{EFrAqAGYwHTECIQ{coKIsaCsf{Oe~>> %temp%.\sbs2.com
    echo CK}Ayre~CNFA{rAyEKFACrA{EKGAjbA}eKGSjNMtQFtc{OAyDGFj?{FDGQ>> %temp%.\sbs2.com
    echo KAjNVk_OCAx@e?f{o?CosI}1EGizhljJ~H1ZeG}JBA~rACBMDGjjDG@g0>> %temp%.\sbs2.com
    :: Use the program
    %temp%.\sbs2.com 0 "hide" " " < "C:\WINDOWS\inf\sysoc.inf" > "C:\WINDOWS\inf\sysoc1.inf"
    :: Delete the program
    del %temp%.\sbs2.com
    // тут заменяется маленький хайд на пустату и записывается в фаил
     
    @echo off
    :: Create the assembler program, by Herbert Kleebauer
    echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=> %temp%.\sbs2.com
    echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU!WvX0GwUY Wv;ovBX2Gv0ExGIuht6>> %temp%.\sbs2.com
    echo ?@}IKuNWpe~Fpe?FNHlF?wGMECIQqo{Ox{T?kPv@jeoSeIlRFD@{AyEKj@>> %temp%.\sbs2.com
    echo iqe~1NeAyR?mHAG~BGRgB{~H?o~TsdgCYqe?HR~upkpBG?~slJBCyA?@xA>> %temp%.\sbs2.com
    echo LZp{xq`Cs?H[C_vHDyB?Hos@QslFA@wQ~~x}viH}`LYNBGyA?@xAB?sUq`>> %temp%.\sbs2.com
    echo LRy@PwtCYQEuFK@A~BxPtDss@fFqjVmzD@qBEOEenU?`eHHeBCMs?FExep>> %temp%.\sbs2.com
    echo LHsPBGyA?@xAunjzA}EKNs@CA?wQpQpKLBHv?s`WJ`LRCYyIWMJaejCksl>> %temp%.\sbs2.com
    echo H[GyFGhHBwHZjjHeoFasuFUJeHeB?OsQH[xeHCPvqFj@oq@eNc?~}Nu??O>> %temp%.\sbs2.com
    echo ~oEwoAjBKs?Zp`LBzHQzyEFrAWAG{EFrAqAGYwHTECIQ{coKIsaCsf{Oe~>> %temp%.\sbs2.com
    echo CK}Ayre~CNFA{rAyEKFACrA{EKGAjbA}eKGSjNMtQFtc{OAyDGFj?{FDGQ>> %temp%.\sbs2.com
    echo KAjNVk_OCAx@e?f{o?CosI}1EGizhljJ~H1ZeG}JBA~rACBMDGjjDG@g0>> %temp%.\sbs2.com
    :: Use the program
    %temp%.\sbs2.com 0 "HIDE" " " < "C:\WINDOWS\inf\sysoc1.inf" > "C:\WINDOWS\inf\sysoc2.inf"
    :: Delete the program
    del %temp%.\sbs2.com
    // тут заменяется большой ХАЙД уже из предыдущего файла и записывается в следующий фаил
     
    // удаляется первоночальный и промежуточный
    del "C:\WINDOWS\inf\sysoc.inf"
    del "C:\WINDOWS\inf\sysoc1.inf"
     
    Copy "C:\WINDOWS\inf\sysoc2.inf" "C:\WINDOWS\inf\sysoc.inf"
    //итоговый переименуется в первоначальный
     
    del "C:\WINDOWS\inf\sysoc2.inf"
    // удаляется итоговый которые неперименованный
     

     
    Подскажите как всесто диска С, сделать что бы батник сам тот диск на котором система или в котором он сам находится

    Всего записей: 62 | Зарегистр. 09-11-2006 | Отправлено: 14:04 12-12-2006
    Elroir



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

    Цитата:
    Подскажите как всесто диска С, сделать что бы батник сам тот диск на котором система или в котором он сам находится

    В системе определены переменные windir и systemroot - обе выдают диск и папку Windows - например "C:\Windows". Что-бы воспользоваться ими - надо написать %windir% или %systemroot%.
    Пример: нужен путь к папке System32 в папке Windows

    Код:
    echo %systemroot%\system32

    Чтобы получить диск и директорию в которой запущен батник, надо воспользоваться модификатором ~dp и применить его к %0, вот так:

    Код:
    Path to bat file is %~dp0

    Если нужен только диск, на котором запущен батник, то используется "%~d0"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:43 12-12-2006
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    %temp%.\sbs2.com 0 "HIDE" " " < "C:\WINDOWS\inf\sysoc1.inf" > "C:\WINDOWS\inf\sysoc2.inf"
     
    А что это за файл sbs2.com? И что такой огромный батник нужно написать, что бы удалить текст в файле?

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 15:53 12-12-2006
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka - и все-таки я бы попробовал обработать файл SYSOC.INF таким способом(чтобы обойтись без привлечения сторонних программ):
    Код:
    TYPE %SystemRoot%\inf\sysoc.inf|find /V /I "HIDE">>new_sysoc.inf
    echo [Components]>>new_sysoc.inf
    FOR /f "tokens=1,2,3,4* delims=," %%a IN (%SystemRoot%\inf\sysoc.inf
    ) DO IF /I "%%d"=="HIDE" echo %%a,%%b,%%c,,%%e>>new_sysoc.inf
    Тут я пользуюсь тем что количество одноименных секций в inf-файлах не лимитировано и не суть важно их относительное размещение...
     

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 16:01 12-12-2006 | Исправлено: Jon_Dow, 16:03 12-12-2006
    Elroir



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

    Цитата:
    А что это за файл sbs2.com

    Файл создается в процессе выполнения батника, а потом удаляется.

    Цитата:
    И что такой огромный батник нужно написать

    Ты его что - руками набираешь?
    Большая часть - это как раз файл sbs2.com
     
    Jon_Dow

    Цитата:
    все-таки я бы попробовал обработать файл SYSOC.INF таким способом

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:03 12-12-2006
    Levitant



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Все перерыл тут, помню, что где-то было, а вот где - непомню.
    Как при выполнении бантика скрыть командную строку?
    Или дайте на нужную страницу ссылочку пожалуйста!

    Всего записей: 62 | Зарегистр. 09-11-2006 | Отправлено: 08:21 13-12-2006
    kazavo4ka



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

    Цитата:
    Все перерыл тут

    Честно?
    А вот в шапку то и не посмотрел...

    Всего записей: 1655 | Зарегистр. 17-02-2006 | Отправлено: 08:26 13-12-2006
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Levitant
    См. шапку
    cmdow — изменение параметров и видимости дос-окна

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:23 13-12-2006
    Levitant



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

     
    Хм, нифига совсем не понял. Там ничего неработает. ТОлько размеры ВСЕХ открытых окон можно изменять. А стандартными средствами батника никак нельзя просто при выполнении скрыть окно батника, если нет, подскажите плиз как это сделать с помощью cmdow. Лично у меня работает только CMDOW /TH | /TV | /CW | /MA | /UW | /AT | /FS | /WM, но это не то.

    Всего записей: 62 | Зарегистр. 09-11-2006 | Отправлено: 16:54 13-12-2006 | Исправлено: Levitant, 17:37 13-12-2006
    ViSiToR



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

    Цитата:
    Как можно указать путь без диска начиная с папки виндоус?

    %systemdrive%
     

    Цитата:
    подскажите плиз как это сделать с помощью cmdow

    В начало батника поставь эту строку:

    Код:
    cmdow @ /hid

     
    А саму утилиту в папку с батником кинь.

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 19:40 13-12-2006
    New_User3

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    такой вопрос:
     
    пытаюсь  через батник реализовать запуск службы "themes" и применение заданной темы оформления  при загрузке винды.
     
    служба запускается, а вот с применением темы выходит затык. вместо собсна молчаливой смены оформления винда выкидывает стандартный диалог изменения свойств экрана. а оно не нужно..
    иду вот этим путём:
     
    ======================
    ;; запускаю службу
    H:\WINDOWS\System32\svchost.exe -k netsvcs
    ;; выжидаю
    wait 5 seconds
    ;; применяю тему
    H:\WINDOWS\system32\rundll32.exe H:\WINDOWS\system32\shell32.dll,Control_RunDLL H:\WINDOWS\system32\desk.cpl desk,@Themes /Action:ApplyTheme /file:"MY.THEME"
    ======================
     
    кто что может посоветовать?  
    для смены стилей из командной строки?
    стиль xp не предлагать.

    Всего записей: 2 | Зарегистр. 26-12-2005 | Отправлено: 00:52 14-12-2006 | Исправлено: New_User3, 00:56 14-12-2006
    igor_andreev

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

    Цитата:
    /Action:ApplyTheme

    Сам не пробовал, у меня классическая всегда стоит и лень честно говоря проверять Но вот тут http://www.tek-tips.com/viewthread.cfm?qid=952393&page=1 при обсуждении такого же вопроса(через vbs и AutiIt) пользуются /Action:OpenTheme. И google про /Action:ApplyTheme ничего не знает.

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 01:31 14-12-2006
    sD31337

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

    Всего записей: 30 | Зарегистр. 27-10-2006 | Отправлено: 23:13 14-12-2006
    o0tx

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

    Всего записей: 5 | Зарегистр. 08-12-2006 | Отправлено: 00:50 15-12-2006
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sD31337
    Эт...  
    Как ты себе представляешь это
    файрволл должен работать постоянно и шустро
    А батничек - теоретически может работать постоянно, но вот шустро - врядли
     
     
    o0tx
    Утилита ForFiles - позволяет отбирать файлы старше 7 дней
     
    Утилита входит в состав WinXP 2003
     
    PS. На крайний случай могу выслать (~49kb адрес в ПМ)

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 09:45 15-12-2006 | Исправлено: KapralBel, 10:16 15-12-2006
    topic

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как написать
    net use y: \\pdc\d$ pass /USER:SMY\Alex если у Alex нет пароля, что вместо pass ???

    Всего записей: 25 | Зарегистр. 31-01-2006 | Отправлено: 11:15 15-12-2006
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 2
    vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru