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

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



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    lorents
    надо указать имя задачи а не процесса

    Код:
    cmdow "NaMe" /max

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 00:43 13-06-2009
    Maza_Faka



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

    Цитата:
    надо указать имя задачи а не процесса

    Вы о чём? В справке ясно сказано, что нужно указать заголовок окна, либо его дескриптор в hex-строке.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:36 13-06-2009
    HaK1R



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Maza_Faka
    Я привел г-ну lorents пример, который позволяет решить его проблему, с пояснением, что в кавычках вместо NaMe нужно указать не имя процесса, а имя задачи(Диспетчер задач-вкладка "приложения"-столбец "задача")

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 10:23 13-06-2009
    alexander6161



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите решить задачу?
    В процессе выполнения батника в переменной %A% получается число, например 12345.
    В переменной %B% получается число 1234567890.
     
    Хочу, чтобы если в %A% содержится частичное совпадение числа с %B%, то чтобы %B% стало другим. Пример:
    set B=1234567890
    set B=%B:12345=%
    При таком раскладе в %B% получится число 67890.
     
    set B=1234567890
    set B=%B:%A%=%
    А так сделать не получается, подскажите что делаю не так и как это можно реализовать средствами батника?
    То есть надо определить, есть ли в %B% в любом месте строка %A%.
     
    Заранее спасибо.

    Всего записей: 185 | Зарегистр. 17-08-2008 | Отправлено: 13:08 13-06-2009
    lorents



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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 13:17 13-06-2009
    Maza_Faka



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

    Цитата:
    имя задачи

    Это заголовок окна (window title)

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 13:46 13-06-2009
    smirnvlad

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

    Код:
     
    setlocal enabledelayedexpansion
     
    set A=12345
    set B=1234567890
    set B=!B:%A%=!
     
    echo B=%B%
     

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 15:41 13-06-2009
    alexander6161



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    smirnvlad
    Огромное спасибо!
    Правду говорят, век живи - век учись.

    Всего записей: 185 | Зарегистр. 17-08-2008 | Отправлено: 17:28 13-06-2009
    alexander6161



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста, есть ли скрипт или утилита, которые могут убрать строки с комментариями и пустые строки из батника? Вроде всё внимательно в шапке посмотрел, но не нашёл. Просто после удаления этих строк батник становится почти вполовину меньше, а руками постоянно удалять - муторно.
     
    То есть надо убрать все строки, начинающиеся на "rem" и "::", и заканчивающиеся переводом строки.

    Всего записей: 185 | Зарегистр. 17-08-2008 | Отправлено: 12:02 14-06-2009 | Исправлено: alexander6161, 12:12 14-06-2009
    Maza_Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    alexander6161
    Быстро, эффективно и без проблем со спецсимволами, если использовать SED.EXE

    Код:
     
    @Echo Off
     
    Sed "s/^::.*\|^rem.*//gi" < test.txt >out.txt
    Del /F /Q test.txt>Nul
     
    Sed "/./!d" < out.txt > test.txt
    Del /F /Q out.txt>Nul
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 12:46 14-06-2009
    alexander6161



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza_Faka
    Большое спасибо! Чётко работает!

    Всего записей: 185 | Зарегистр. 17-08-2008 | Отправлено: 15:08 14-06-2009
    HaK1R



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

    Цитата:
    Это заголовок окна (window title)


    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 21:12 14-06-2009
    Sergey_Demchuk



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Никто не подскажет?  
    Надо настроить в Групповой политике сервер обновлений  
    В групповой политике это задается с помощью ключей в реестре по адресу  
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{10411CDD-D21D-41E6-A6CD-DCE52DED3CCE}Machine\Software\Policies\Microsoft\Windows\WindowsUpdate]  
     
    Подключ {10411CDD-D21D-41E6-A6CD-DCE52DED3CCE} для каждого компа разное.
    Так что просто перекопировать его с одного компа на другой не получится. Может можно как то через коммандную строку все это настроить?
    Надо включить Настройку автоматических обновлений а также Указать сервер обновлений в интрасети.

    Всего записей: 3551 | Зарегистр. 16-12-2002 | Отправлено: 17:47 15-06-2009
    HaK1R



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

    Цитата:
    Может можно как то через коммандную строку все это настроить?

    можно

    Цитата:
    Подключ {10411CDD-D21D-41E6-A6CD-DCE52DED3CCE} для каждого компа разное.  

    нам их угадать надо?
    Пожалуйста конкретно: что, где, на что надо исправить+входные параметры.

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 21:07 15-06-2009
    ZeroCrash



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Есть проблемка, но я не знаю можно ли её решить. Вот кусок кода, который я использую:
     

    Код:
    for %%i in (1,2,3,4,5) do (
        for %%j in (q,w,r,t,p,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m) do set l_%%i_!random!=%%j
        for %%j in (e,y,u,i,o,a) do set j_%%i_!random!=%%j
            for %%j in (1,2,3,4,5,6,7,8,9,0) do set k_%%i_!random!=%%j
    )
     
    for %%i in (1,2,3,4,5) do (
        for /f "tokens=4 delims=_=" %%j in ('set l_%%i') do set l-%%i=%%j
        for /f "tokens=4 delims=_=" %%j in ('set j_%%i') do set j-%%i=%%j
        for /f "tokens=4 delims=_=" %%j in ('set k_%%i') do set k-%%i=%%j
        )
    echo %j-1%%l-1%%j-2%%l-2%%l-3%%j-3%%l-4%%j-4%%l-5%%z-6%%x-7%>>%randomValue%.txt

     
    Выделенный мною кусок кода в готовом виде представляет набор букв и цифр, общее кол-во "символов" всегда 11 (имею в виду что число "символов" будет постоянно одинаковым). Можно ли сделать так чтобы "символы" генерировалось в случайно выбранном диапазоне (например от 7 до 12 "символов")?
     
    Заранее благодарен!

    Всего записей: 43 | Зарегистр. 15-04-2009 | Отправлено: 23:53 15-06-2009
    zzz528

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

    Всего записей: 1653 | Зарегистр. 20-06-2005 | Отправлено: 07:56 16-06-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZeroCrash
    Исправишь что надо по своему усмотрению, названия переменных поменял на a,b,c, исправь по необходимости:

    Код:
     
    @echo off
    setlocal enabledelayedexpansion
     
    for %%i in (1,2,3,4,5) do (
        for %%j in (q,w,r,t,p,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m) do set a_%%i_!random!=%%j
        for %%j in (e,y,u,i,o,a) do set b_%%i_!random!=%%j
        for %%j in (1,2,3,4,5,6,7,8,9,0) do set c_%%i_!random!=%%j
    )
     
    for %%i in (1,2,3,4,5) do (
        for /f "tokens=4 delims=_=" %%j in ('set a_%%i_') do set a-%%i=%%j
        for /f "tokens=4 delims=_=" %%j in ('set b_%%i_') do set b-%%i=%%j
        for /f "tokens=4 delims=_=" %%j in ('set c_%%i_') do set c-%%i=%%j
    )
     
    :: Здесь можешь поменять порядок вывода
    set "string=%a-1%%b-1%%c-1%%a-2%%b-2%%c-2%%a-3%%b-3%%c-3%%a-4%%b-4%%c-4%%a-5%%b-5%%c-5%"
     
    :: Здесь генерируется длина строки (7-12)  
    for /l %%i in (7,1,12) do set "num_!random!=%%i"
    for /f "tokens=3 delims=_=" %%i in ('set num_') do set "num=%%i"
     
    echo !string:~0,%num%!>>file.txt    
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:36 16-06-2009
    Sergey_Demchuk



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    HaK1R
     
    Если вызываю gpedit.msc и настраиваю вручную параметры Настройка автоматических обновлений а также Указать сервер обновлений в интрасети, то в реестре появляются эти ветки
     
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{10411CDD-D21D-41E6-A6CD-DCE52DED3CCE}Machine\Software\Policies\Microsoft\Windows\WindowsUpdate]
    "WUServer"="http://10.11.177.3:8530"
    "WUStatusServer"="http://10.11.177.3:8530"
     
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{10411CDD-D21D-41E6-A6CD-DCE52DED3CCE}Machine\Software\Policies\Microsoft\Windows\WindowsUpdate\AU]
    "DetectionFrequencyEnabled"=dword:00000001
    "DetectionFrequency"=dword:00000001
    "NoAutoUpdate"=dword:00000000
    "AUOptions"=dword:00000004
    "ScheduledInstallDay"=dword:00000000
    "ScheduledInstallTime"=dword:0000000b
    "UseWUServer"=dword:00000001
     
    Пробовал просто на другом компе занести это все в реестр, номер нет проходит, ибо подключ {10411CDD-D21D-41E6-A6CD-DCE52DED3CCE} разный для разных машин.
    Если на машине не настраивалось в групповой политике автообновление, то подключа Group Policy Objects нету вообще, так что я не знаю как угадать подключ {10411CDD-D21D-41E6-A6CD-DCE52DED3CCE}, может можно групповую политику настраивать из коммандной строки как то?

    Всего записей: 3551 | Зарегистр. 16-12-2002 | Отправлено: 09:50 16-06-2009
    jonnydram

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток!
     
    Пытаюсь создать запрос, который хочу вставить в логон. Суть в следующем.
     
    ЕСЛИ <текущий пользователь> в домене НЕ является членом <группы> ТО Выполнять добавление реестрового файлика (или ключей) в реестр (от имени <другой пользователь> если возможно) ИНАЧЕ ничего не делать. Вывести на экран сообщение какое-нибудь.
     
    доковырялся пока что до фразы
     

    Код:
     dsquery user -samid USERNAME | dsget user -memberof  

     
    но тут нужно точно указывать имя пользователя. Мне же нужна переменная "текущий пользователь". И как выдернуть из нескольких строк результата этого запроса (не в одной же группе пользователь состоит) нужную.

    Всего записей: 19 | Зарегистр. 20-02-2009 | Отправлено: 11:08 16-06-2009
    ZeroCrash



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

    Всего записей: 43 | Зарегистр. 15-04-2009 | Отправлено: 11:24 16-06-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