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

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

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

vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Цитата:
    Вот возникла тема: надо все заглавные буквы в именах файлах переделать на строчные.  

    Код:
    @echo off
    for /f "delims=" %%a in (' dir /b /l ') do ren "%%~a" "%%~a"
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:45 18-02-2011 | Исправлено: wolf0425, 10:53 18-02-2011
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как сделать активным окно уже запущенной программы батником или скриптом?

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 11:12 18-02-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wolf0425
    Отлично! Как чувствовал, что должно быть красивое решение

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 11:23 18-02-2011
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вариант с переименованием также в подпапках:

    Код:
    @echo off
    set "Folder=z:\folder"
    for /f "delims=" %%i in ('dir %Folder% /b/s/ad') do call:renfile "%%i"
    call:renfile "%Folder%"
    goto:eof
    :renfile
    pushd %1
    for /f "delims=" %%a in ('dir /b/l/a-d') do ren "%%a" "%%a"
    popd
    exit /b 0

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 11:34 18-02-2011 | Исправлено: Rush, 11:53 18-02-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wolf0425
    Rush
    Спасибо!
    Дир /Л самое то, уже прикрутил. Работает как надо!

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:05 18-02-2011
    wolf0425



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

    Цитата:
    вариант с переименованием также в подпапках:  

    Код:
    @echo off
    for /f "delims=" %%a in (' dir /a-d /s /b /l ') do move "%%~a" "%%~a"

     
    Добавлено:

    Цитата:
    Как сделать активным окно уже запущенной программы батником или скриптом?  

    WshShell.AppActivate("title")

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:25 18-02-2011 | Исправлено: wolf0425, 12:26 18-02-2011
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425

    Цитата:
    for /f "delims=" %%a in (' dir /a-d /s /b /l ') do move "%%~a" "%%~a"  

    Самый из всех правильный вариант.
     
    king_stiven

    Цитата:
    Как сделать активным окно уже запущенной программы батником или скриптом?


    Код:
    Option Explicit
     
    Dim ProcName
    Dim strWQL
    Dim objWMI
    Dim ProcItem
     
    ProcName = "notepad.exe"
    strWQL = "Select * from Win32_Process Where Name = '" & ProcName & "'"
    Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
     
    For Each ProcItem In objWMI.ExecQuery(strWQL)
      CreateObject("WScript.Shell").AppActivate ProcItem.ProcessId
    Next

    Можно и батником (гибридным).

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 12:33 18-02-2011
    king_stiven

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

    Цитата:
    WshShell.AppActivate("title")  

    это вот так?
     
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.AppActivate("title")
     
    Title берём из tasklist? Чёта не идёт. В общем надо  развернуть уже запущенную прогу и сделать её активной, вне зависимости от того свёрнута она или нет, активна или нет.
     
    Добавлено:
    Rush
    работает, если не свёрнута, теперь нужно и для  

    Цитата:
     В общем надо  развернуть уже запущенную прогу и сделать её активной, вне зависимости от того свёрнута она или нет, активна или нет.


    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 14:07 18-02-2011 | Исправлено: king_stiven, 14:31 18-02-2011
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    Используй cmdnow. Штатными средствами вряд ли возможно.

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 15:32 18-02-2011
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Rush
    Ну где ж ты раньше был! Я на nircmd думать начал было.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 15:59 18-02-2011 | Исправлено: king_stiven, 17:19 18-02-2011
    wolf0425



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

    Цитата:
    Ну где ж ты раньше был! Я на nircmd думать начал было.

    CMDOW всем хорош, только вот его Касперский не любит (касперычу автор nircmd не башляет, часом?)...

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 17:46 18-02-2011 | Исправлено: wolf0425, 17:58 18-02-2011
    01MDM



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

    Цитата:
    CMDOW всем хорош, только вот его Касперский не любит

    И уж больно давно не обновлялся (с дек. 2004). Видимо утилиту или ее код использовали по "назначению". Кстати не только Каспер кричит.


    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:38 18-02-2011
    wolf0425



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

    Цитата:
    И уж больно давно не обновлялся (с дек. 2004).
    значит так хорошо написана, что нечего в ней обновлять
     

    Цитата:
    Видимо утилиту или ее код использовали по "назначению".
    можно подумать что "по назначению" nircmd или cscript использовать сложнее... Параноя какая-то избирательная - тут угрозу видим там не видим, зато ставим себе галочку "боремся с хаками"...

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 19:27 18-02-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Наверное потому, что nircmd это просто коллекция задокументированных функций, а cmdow, возможно, какой-то нативный код. Или он(а), cmdow, первым предоставил потенциально опасные возможности.


    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:45 18-02-2011
    kostyamks



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет! Есть SFX архив с паролем созданный с помощью WinRAR, что не могу сделать. Нужно фаил exploit.exe у которого пароль ru-board занести в автозагрузку а именно в [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices] а сам архив будет расположен в директории C:\Windows\exploit\. Желательно чтоб распаковка архива не была привязана к месту расположения самой программы WinRAR.

    Всего записей: 284 | Зарегистр. 12-09-2009 | Отправлено: 21:45 18-02-2011 | Исправлено: kostyamks, 21:47 18-02-2011
    Misha1989



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kostyamks, неправильный подход к задаче, если есть SFX зачем использовать внешний WinRAR ???
    RAR SFX-архив делай без пароля и указывай в нём куда надо распаковаться. Либо я видел ZIP-сборки, в которых можно сделать архив с паролем и вводить его не надо, он сам распаковывается. В ключ реестра добавляешь заранее заготовленный REG-файл если там много параметров прописано как у сервиса, если одна строчка - то можно без REG-файла добавить напрямую командой REG.
    Как я понимаю 7-Zip более всего удобен для создания различных сборок, умеет запускать батники и команды типа REG ADD в невидимом режиме.
     
    Да, и ещё - у меня на XP вообще нет такой ветки реестра:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices]

    Всего записей: 359 | Зарегистр. 22-03-2010 | Отправлено: 22:04 18-02-2011 | Исправлено: Misha1989, 22:07 18-02-2011
    kostyamks



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

    Цитата:
    Да, и ещё - у меня на XP вообще нет такой ветки реестра:

    Она есть в Win7.
     
    Вот что у меня уже получилось:
     
    @echo off
    cls
    set Folder=C:\Windows\exploit\
    if "%Folder%"=="" goto fpr
    copy exploit.exe "%Folder%"
    %SystemRoot%\System32\reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices" /v exploit /t REG_SZ /d "\"%ProgramFiles%\WinRAR\rar.exe\" X -pru-board -o+ -ibck \"%Folder%\exploit.exe\"" /f
    goto end

    Всего записей: 284 | Зарегистр. 12-09-2009 | Отправлено: 22:20 18-02-2011
    Misha1989



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kostyamks
    Возможно что я недопонял зачем вам нужен такой геморрой c внешним винраром, но решается всё гораздо проще.
     
    SFX делаете без пароля, внутри пишете эти команды и любые какие ещё нужны, например на запуск файла который внутри архива (Programma.exe), это можно прямо в строчку к батнику дописать.
     
    Комментарий архива SFX-RAR:

    Код:
    ;Расположенный ниже комментарий содержит команды SFX-сценария
     
    Path=%TEMP%
    SavePath
    Setup=cmd /c "reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices" /v exploit /t REG_SZ /d "%sfxname%" /f & start "" Programma.exe"
     
    Silent=1
    Overwrite=1

     
    Запустите этот SFX из любой папки, он пропишет себя в автозапуск сам, благодаря переменной винрар %sfxname%, и потом при каждом запуске винды будет стартовать. Только учтите, чтобы писать в HKLM нужны права админа, в SFX есть настройка "Запрос административного доступа".

    Всего записей: 359 | Зарегистр. 22-03-2010 | Отправлено: 01:32 19-02-2011 | Исправлено: Misha1989, 02:51 19-02-2011
    kostyamks



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





    Спасибы — в ПМ!

    Всего записей: 284 | Зарегистр. 12-09-2009 | Отправлено: 02:06 19-02-2011 | Исправлено: vu1tur, 11:44 19-02-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день!
    Подскажите, пожалуйста, как получить время изменения файла?
    %~t1, показывает и время и дату, а мне бы только время.
     
    Сделал ро другому, вопрос снят

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 12:21 20-02-2011 | Исправлено: lorents, 12:53 20-02-2011
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru