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

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

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

vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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-файлах 6
(часть 1, часть 2, часть 3, часть 4, часть 5)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

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

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





    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 23:07 04-11-2008 | Исправлено: vu1tur, 11:38 26-05-2009
    wolf0425



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

    Цитата:
    Боюсь, что придётся использовать сторонние утилиты: sed, grep and etc..., так, как придётся искать, используя регулярные выражения.  
    где ты там регулярные выражения то увидел - такие чтоб for /f c ними не справился?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 11:11 04-03-2009
    GGS



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    K_AHTOH, Maza_Faka
    Правая кнопка мышки на панели задач => Показать рабочий стол
    Это работает и без существования соответствующего файла *.scf
    Меня интересует, каким образом командой в BAT-файле это выполнить. Без *.scf
    Наверно,  что-то типа строки rundll32 shell32.dll...

    Всего записей: 1039 | Зарегистр. 25-03-2002 | Отправлено: 11:49 04-03-2009
    K_AHTOH



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    GGS
    http://www.nirsoft.net/utils/nircmd.html
    C:\Documents and Settings\Пользователь\Application Data\Microsoft\Internet Explorer\Quick Launch\Свернуть все окна.scf  

    Код:
    [Shell]
    Command=2
    IconFile=explorer.exe,3
    [Taskbar]
    Command=ToggleDeskto

    В любом случае это команда експлоера.  
    Тут ее просят на Сях рисовать...

    Всего записей: 155 | Зарегистр. 20-10-2006 | Отправлено: 12:11 04-03-2009 | Исправлено: K_AHTOH, 12:12 04-03-2009
    GGS



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    K_AHTOH
    Например, если я в BAT-файле вставляю команду:
    rundll32 user32.dll LockWorkStation
    то происходит блокировка компа, а BAT-файл продолжает выполняться.
     
    Мне нужна аналогичная конструкция для скрытия всех окон и продолжения работы BAT-файла.
    Без внешних "примочек" и без *.scf
     

    Всего записей: 1039 | Зарегистр. 25-03-2002 | Отправлено: 12:42 04-03-2009 | Исправлено: GGS, 12:46 04-03-2009
    igor_andreev

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

    Код:

    CreateObject("Shell.Application").MinimizeAll

     

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 12:50 04-03-2009
    GGS



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Работают такие фрагменты в ВАТ-файлах:

    Цитата:
    echo [Shell]>test.scf
    echo Command=^2>>test.scf
    echo [Taskbar]>>test.scf
    echo Command=ToggleDesktop>>test.scf
    test.scf
    del test.scf

    и (спасибо igor_andreev)

    Цитата:
    echo CreateObject("Shell.Application").MinimizeAll>test.vbs
    test.vbs
    del test.vbs

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

    Всего записей: 1039 | Зарегистр. 25-03-2002 | Отправлено: 13:26 04-03-2009 | Исправлено: GGS, 13:58 04-03-2009
    Serhiy123



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GGS
    Если без создания внешних файлов, то как вариант (имееся в виду, что "Свернуть все окна.scf" заведомо существует)

    Код:
     
    start C:\Documents and Settings\Пользователь\Application Data\Microsoft\Internet Explorer\Quick Launch\Свернуть все окна.scf
     


    Всего записей: 126 | Зарегистр. 05-09-2002 | Отправлено: 13:39 04-03-2009
    GGS



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Serhiy123
    Спасибо, конечно. Но Вы прочитали бы, что я писал ранее.  

    Цитата:
    имееся в виду, что "Свернуть все окна.scf" заведомо существует

    Вот именно.
     
    Добавлено:
    И ещё. Всё-таки существует разница между командами по клавишам <Win+D> и <Win+M>

    Всего записей: 1039 | Зарегистр. 25-03-2002 | Отправлено: 13:46 04-03-2009 | Исправлено: GGS, 17:33 04-03-2009
    Maza_Faka



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

    Цитата:
    где ты там регулярные выражения то увидел - такие чтоб for /f c ними не справился?

     

    Цитата:
     
    имеются записи формата  
    <ipАдрес> <проблеы или табуляторы> <домен>
     

    Попробуй указать символ табуляции утилите Findstr
     

    Цитата:
     
    перед добавленим хочу проверить
     

    При чём здесь For /F? Можно, конечно, проверить и с помощью For /F, разбирая каждую строку, а можно заюзать Sed, что будет намного быстрее

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем доброго времени суток, вопрос таков: как сделать батник что бы открывался диспетчер устройств с развернутой вкладкой порты? Ключей на compmgmt.msc тоже не нашел =( заранее благодарен.

    Всего записей: 2 | Зарегистр. 04-03-2009 | Отправлено: 17:08 04-03-2009
    Mr_Hat



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Al0ner
    На счет портов не скажу, но диспетчер вызывается так
    Код:
    %windir%\SYSTEM32\devmgmt.msc

    Всего записей: 984 | Зарегистр. 04-10-2005 | Отправлено: 18:03 04-03-2009 | Исправлено: Mr_Hat, 18:05 04-03-2009
    Al0ner

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

    Всего записей: 2 | Зарегистр. 04-03-2009 | Отправлено: 18:47 04-03-2009
    ponand

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите плиз...
    Как экранировать символ "%" для записи переменной в виде строки в файл?

    Всего записей: 56 | Зарегистр. 14-07-2008 | Отправлено: 19:21 04-03-2009 | Исправлено: ponand, 19:27 04-03-2009
    BorlandIMHO

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ponand
    Двойные % вместо одинарных:
    Код:
    set ASS=ЖОПА
    echo %%ASS%%=%ASS% >>outputfile.txt
    pause


    ----------
    http://www.imho.ws

    Всего записей: 2403 | Зарегистр. 12-10-2006 | Отправлено: 20:29 04-03-2009
    graydevil



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа, а как переименовать текущего залогиненого юзера, хочу получить такой cmd -  
     
    1. переименовываем текущего в "myuser"
    2. net user "myuser" "pass" /add /passwordchg:no /passwordreq:yes  
     
     
     
     
     

    Всего записей: 59 | Зарегистр. 14-04-2006 | Отправлено: 21:15 04-03-2009
    avkorets



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ребят никто не подскажет насчет awk?
    есть строка $0
    есть поля в ней $i
    каждое поле нужно проверить на совпаение символа...
    например поле имеет вид х="3546253012"
    нужно типа  
    if ($i~\х="\)
    {
    rf=$i
    }
    то есть если поле имеет совпадение которое я озвучил в условии иф то rf присваевается  
    то что в кавычках 3546253012..
    есть у кого какие соображение или подскажите куда обратиться...Тут в свое время помогли мне с sed  мож и с awk помогут...

    Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 00:50 05-03-2009
    igor_andreev

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

    Цитата:
    есть у кого какие соображение

    Ну if .. else через отдельный скрипт реализовать.
    Типа вот, если четвертое поле начинается с x=" то присвоить переменной rf десять знаков, начиная с 4-го из четвертого поля:

    Код:

    echo aa bb cc x="3546253012" | gawk -f script.awk

    script.awk вот

    Код:

    { if ($4 ~ /^x="/) { rf = substr($4,4,10) } else { rf = 0} }
    END{ printf(rf) }

     
    Добавлено:
    else { rf = 0} можно убрать из скрипта, тогда rf ничему не будет равна.
     
    Как то отсюда сплясать надо

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 02:07 05-03-2009 | Исправлено: igor_andreev, 02:17 05-03-2009
    avkorets



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    Спсибо, правда не помогает почему то..
    он rf нуль присваивает..
    могу кусок кода написать моего для понятия общей картины...
     

    Цитата:
     
     if($1=="<ED211") -ищу строку
       {
       for(i=1;i<=NF;i++) шуршу по полям
       {
           if ($i~/^ReservedSum="/) ищу совпадение
          {
          reservedsum = substr($i,4,10) если совпало..
          }
       }
     

    Так не пашет =( нолик присваевает..
    К тому же колво символов которое стоит после " может быть и не 10..
    Так, что нужно чтото типа поиска на совпадение и если совпало то вытащить значение находящееся между ""..Вот как так сделать ну не могу понять с этими регулярными выражениями =)  
    Хммм...
    Если выполнить  

    Цитата:
     
    gsub(/^\ReservedSum=*"|" *$/,"",$i)
     

    то возращает то что нужно!!Но опять таки  
    если попробовать присвоить

    Цитата:
     
    reservedsum = gsub(/^\ReservedSum=*"|" *$/,"",$i)
     

    получае на выходе reservedsum=0..блин чего я не так делаю?

    Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 08:50 05-03-2009 | Исправлено: avkorets, 10:08 05-03-2009
    graydevil



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите решить проблему, есть команда  
     
    control userpaswords2  
     
    где выбираем юзера для автологина, вводим пароль...
     
    Можно реализовать все эти опрации из коммандной строки,  
    вот юзер, вот пароль, ему сделать автовход.

    Всего записей: 59 | Зарегистр. 14-04-2006 | Отправлено: 10:23 05-03-2009
    El Sanchez



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

    Цитата:
    Помогите решить проблему, есть команда  
     
    control userpaswords2  
     
    где выбираем юзера для автологина, вводим пароль...  
     
    Можно реализовать все эти опрации из коммандной строки,  
    вот юзер, вот пароль, ему сделать автовход.

     
    Можно попробовать утилиту autologon http://technet.microsoft.com/ru-ru/sysinternals/bb963905.aspx

    Всего записей: 467 | Зарегистр. 23-12-2008 | Отправлено: 11:41 05-03-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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 6
    vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru