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

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

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

    Цитата:
    вот буквы очень быстро пишутся
    Да я ping вставлял для задержки, отвратительный вариант для такого батника, лучше вместо пинга использовать sleep.exe из майкрософтовского Resource Kit 2003, она не у всех просто есть.  
    скачать (zip, меньше 2Кб)
    и вставлять вместо всех этих PING -n 1 -w 1000  localhost > NUL  

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 22:44 17-02-2007 | Исправлено: igor_andreev, 22:51 17-02-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    :_write
    cls && echo %* & PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && goto eof
     
    вот так у меня получилось более менее похоже на письмо руками
    попытался запихать каждое через локальную переменную, потерпел поражение, пришлось писать одним махом ((

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 04:33 18-02-2007
    Smitis



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

    Цитата:
    cls && echo %* & PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && goto eof

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

    Всего записей: 2436 | Зарегистр. 09-02-2003 | Отправлено: 00:12 19-02-2007
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Скажите, а возможно батником вызвать DLL? типа DllCall - нужно вызвать user32.dll с параметрами, я кажется нашел способ обновить все открытые окна проводника.

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 02:03 19-02-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    rundll32.exe user32.dll, function_name param1 param2 ...
    Видимо так. IMHO

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 02:07 19-02-2007
    ViSiToR



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

    Цитата:
    Видимо так

    Не получается - нужно запустить примерно так (это в AutoIt) :
     

    Код:
    Dllcall("user32.dll", "long", "SendMessage", "hwnd", $hWnd, "int", 0x111, "int", 28931, "int", 0)

     
    Где $hWnd, это управляющий контроль для того окна (папки) в которое будет посланно обновление.
     
    Оказывается это будет сложнее чем я думал... интересно, а возможно ли при помощи cmdow (или другой утилиты) получить управляющий контроль определённого окна? (Win Handle)

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 03:07 19-02-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    В первом столбце таблицы, которую выдает cmdow, как раз и находятся Win Handles.

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



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Кто может помочь сделать курсовик? Задание ниже...если что пишите на мыло или в ICQ
     
    1) Создать командный файл, который позволяет по требованию пользователя:
        1) распаковать архив формата arj в указанный каталог;
        2) распаковать архив формата zip в указанный каталог;
        3) если не указаны параметры командного файла, выводит подсказку.
    Описать назначение команды tree, сравнить возможности этой команды в ОС WINDOWS XP  и WINDOWS 9X.
     
     
    2) Реализуйте командный файл в ОС Linux, который может выполнять следующие действия:  
        Вывести на экран содержимое корневого каталога, отсортированное по времени     модификации файлов. В этом каталоге образовать свой пользовательский каталог, создать в нем файл, переименовать его, вывести содержимое файла на экран.  Перенести данный файл в родительский каталог. Перейти в корневой каталог. Вывести на экран календарь на текущий год.  
    Сравнить возможности редактирования файлов в ОС Linux и WINDOWS.

    Всего записей: 7 | Зарегистр. 19-02-2007 | Отправлено: 04:00 19-02-2007
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Elroir
    Ладно, не для батников всё же задачка (тут уже вступает в разборку тяжелая артилерия , и команды батника уходят на задний фронт/фон)... если желаешь (или кто ещё), могу в ПМ выслать готовое решение на AutoIt - исходник и экзешник приложу).
     


     
    Улучшил батник для помещения записи в реестр которая позволяет создавать батники из контекстного меню проводника:
     

    Код:
     
    @Echo off
    MD "%windir%\SHELLNEW"
    Echo ::--------------------------------------------> %windir%\SHELLNEW\BATHiK.bat
    Echo ::Author: %username%>> %windir%\SHELLNEW\BATHiK.bat
    Echo ::Creation Date/Time: %date%,%time:~0,-3%>> %windir%\SHELLNEW\BATHiK.bat
    Echo ::Description: >> %windir%\SHELLNEW\BATHiK.bat
    Echo ::-------------------------------------------->> %windir%\SHELLNEW\BATHiK.bat
    Echo.>> %windir%\SHELLNEW\BATHiK.bat
    Echo @echo off>> %windir%\SHELLNEW\BATHiK.bat
    REG ADD "HKCR\batfile" /ve /t REG_SZ /d BATHiK /f
    REG ADD "HKCR\.bat\ShellNew" /v FileName /t REG_SZ /d BATHiK.bat /f

     
    В итоге, после запуска этого батника, из контекстного меню проводника будет возможно создавать батник, с содержанием комментариев в его начале -> в комментариях указанно имя пользователя (как автор батника ), дата и время создания шаблона для батника (не знаю зачем оно нужно), и префикс для записи описания пакетного файла (описание для его функциональности).
     
    В первую активную (обрабатываемую) строку записывается @echo off - думаю многие это используют в начале батника

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 04:03 19-02-2007 | Исправлено: ViSiToR, 10:35 19-02-2007
    Elroir



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

    Цитата:
    если желаешь (или кто ещё), могу в ПМ выслать готовое решение на AutoIt - исходник и экзешник приложу

    Спасибо, с удовольствием посмотрю. Когда мы обсуждали перезагрузку эксплорера, я полез в Autoit посмотреть, как там вызывается функция из библиотеки, но разбираться было лень

    Цитата:
    Creation Date/Time: %date%,%time:~0,-3%>> %windir%\SHELLNEW\BATHiK.bat  

    Там, вроде будет дата создания шаблона, нет?

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 04:14 19-02-2007
    K6



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





    Подъём тем запрещён.

    Всего записей: 7 | Зарегистр. 19-02-2007 | Отправлено: 05:46 19-02-2007 | Исправлено: evle, 07:33 20-02-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    K6
    Если у тебя есть конкретные воросы - задавай.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 06:14 19-02-2007
    Patron73



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    hi all
    нужно с сети взять файлик и отправить его по фтп в опредленною папку
    писал так:

    Цитата:
     
    ftp -s:d:\ftp\ftp.txt -nd
    open 123.123.13.34
    user юзверь на ftp
    типа пароль
    cd public_html
    cd download
    put \\comp1\files\files.txt
     
    close
    by
     
     

     при запуске почемуто зацикливается на первой строке...
    что я не так делаю?

    Всего записей: 138 | Зарегистр. 01-06-2005 | Отправлено: 08:38 19-02-2007 | Исправлено: Patron73, 09:55 19-02-2007
    rothman



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FTP script должен выглядеть так :
     
    ---------------начало---------
    open 213.242.13.34
     
     
    user юзверь пароль  
    cd public_html  
    cd download  
    put \\comp1\files\files.txt  
    quit
    ---------------конец---------
     
    после open... - 2 <Entera> (хрен его знает почему )

    Всего записей: 12 | Зарегистр. 22-10-2001 | Отправлено: 08:54 19-02-2007
    ViSiToR



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

    Цитата:
    Там, вроде будет дата создания шаблона, нет?

    Да , эх... всё у меня перемешалось.... AutoIt..... VBScript..... Batch.....    
     

    Цитата:
    K6  
    Если у тебя есть конкретные воросы - задавай.

    Глянь чуть выше, он их задал    
     
    P.S
    См. в ПМ - ссылку кинул.

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 10:30 19-02-2007
    Elroir



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

    Цитата:
    Глянь чуть выше , он их задал

    Да... в 5 утра надо спать, а не в интернете сидеть
     
    K6
    Извини - недоглядел
    Кстати, насчет Linux-а - лучше спросить в в соответствующей теме - http://forum.ru-board.com/topic.cgi?forum=65&topic=0630&start=20 или другой (поиском по словам shell и скрипт).  
     
    Добавлено:
    Вот код батника для распаковки архивов:

    Код:
     
    ::decompress.bat
    @echo off
    if "%~1"=="" goto help
    if "%~2"=="" goto help
    if /i "%~x1"==".arj" arj x %1 "-ht%~2" -y
    if /i "%~x1"==".rar" rar x -y %1 "%~2"\
    goto end
    :help
    echo Usage: decompress archive.ext destination_dir
    echo archive.ext is the full name (with extension) of the ARJ or RAR arhive  
    echo destination_dir is the name of the destination directory for extraction
    echo Note: arj.exe and rar.exe have to be in one of the PATH directories
    :end
     

    Батник тестировался в WinXP SP2, использовались arj.exe версии 2.84 и rar.exe версии 3.51.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 11:32 19-02-2007 | Исправлено: Elroir, 12:52 19-02-2007
    Tierchen

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята, поможите с инстукциями, как организовать поиск по реестру по обнаружению ключей / параметров или значений, содержащих заданное ключевое слово.
     
    Пробую
    reg query "HKLM" | find "keyword"
    получаю
    Error:  Access is denied in the key HKEY_LOCAL_MACHINE\SECURITY
     
    Ввожу
    reg query "HKLM" /s | find "keyword"
    получаю
    Error:  Access is denied in the key HKEY_LOCAL_MACHINE\SAM\SAM
    Error:  Access is denied in the key HKEY_LOCAL_MACHINE\SECURITY
     
    Error:  The system was unable to find the specified registry key or value
     
    и как искать сразу по всем ключам - HKLM, HKCR, HKCU etc.?
    Спасибо заранее!

    Всего записей: 4 | Зарегистр. 14-02-2007 | Отправлено: 18:56 19-02-2007
    Smitis



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

    Цитата:
    Error:  Access is denied in the key HKEY_LOCAL_MACHINE\SECURITY

    Ну, типа, права сначала надо получить/назначить на соответствующие разделы реестра.

    Цитата:
    и как искать сразу по всем ключам - HKLM, HKCR, HKCU

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

    Всего записей: 2436 | Зарегистр. 09-02-2003 | Отправлено: 19:34 19-02-2007
    sdaww

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У юзера урезаны права по самое небалуйся, т.е. редактирование реестра невозможно стандартными средствами под его правами. Как сделать так, чтобы через политики домена можно было запустить скрипт редактирования реестра с правами Администратора домена? И насколько безопасно это будет?

    Всего записей: 85 | Зарегистр. 17-01-2007 | Отправлено: 21:04 19-02-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sdaww
    Вопросы такого плана наверно лучше задавать где-нить в В помощь системному администратору » Групповые политики (Group Policy, GPO): документация, ссылки Там, в том топике сидят злобные админы, которые урезают права, они знают, зачем это делается и как с этим бороться.

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 04:00 20-02-2007
       

    Страницы: 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.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru