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

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

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

KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

hErAx

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

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

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

  • Отправлено: 01:53 25-10-2015 | Исправлено: Paromshick, 21:51 18-12-2017
    Free_Soft



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

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 11:46 19-04-2017 | Исправлено: Free_Soft, 13:51 19-04-2017
    Nikoderiko

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Имеется в 1 папке 200-300 подпапок.
    Нужно: в каждой из этих папок создать подпапку с определенным именем (например, temp)
    Как это сделать?

    Всего записей: 808 | Зарегистр. 17-07-2002 | Отправлено: 14:18 25-04-2017
    YuS_2



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

    Код:
    for /f "delims=" %%i in ('dir /s/b/ad "папка"') do md "%%i\подпапка temp"

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 14:31 25-04-2017
    korosya

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

    Всего записей: 1005 | Зарегистр. 19-07-2003 | Отправлено: 16:43 27-04-2017 | Исправлено: KLASS, 12:45 28-04-2017
    MisHel64



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nikoderiko
    Цитата:
    FOR /D %переменная IN (набор) DO команда [параметры]
        Если набор содержит подстановочные знаки, команда выполняется для всех
        подходящих имен каталогов, а не имен файлов.


    Всего записей: 2307 | Зарегистр. 21-09-2006 | Отправлено: 16:48 27-04-2017
    AlfaOmega

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ребята подскажите примеры  для cmdow  - управление окнами - что-то перебрал варианты с открытием и скрытем firefox  - не отрабатывает - задача: срабатывает открытие мозиллы надо ее сворачивать что-б не мешала - т.к. ссылки автоматом поступают и активируют ее   - если бы она ваще сидела и не открывалась было бы ваще супер - а то глаза раздражает - возможно это через /HID и сработает но пока никаких ваще не могу с ней сделать манипуляций - свернуть все окна запросто а конкретно эту падлу никак)) и еще знает ли кто как нажать нужную кнопку в активном окне, что надо прописать ? вот таких 2 вопросика

    Всего записей: 10 | Зарегистр. 09-11-2012 | Отправлено: 13:33 02-05-2017
    GCRaistlin



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

    Цитата:
    срабатывает открытие мозиллы надо ее сворачивать что-б не мешала - т.к. ссылки автоматом поступают и активируют ее

    Скрытие окна тут не поможет. Сделайте так, чтоб ссылки автоматом не поступали.

    ----------
    Magically yours
    Raistlin

    Всего записей: 3960 | Зарегистр. 18-04-2005 | Отправлено: 14:37 02-05-2017
    metatrop

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не скажу за другие обозреватели, но для Opera вполне работает команда
    cmdow 0x1C0108 /HID
    0x1C0108 - это некий Handle, который надо брать из списка, выдаваемого командой cmdow /T /F, из строки для Opera
     
    Ссылки, поступающие из командной строки (в FAR по нажатию клавиши с универсальной функцией "Перейти по адресу" срабатывает скриптик, разбирающий формат текста в буфере обмена и выполняющий в зависимости от этого формата open URL / cd diskPath / cd registryPath / edit git commit / edit hg commit) обрабатываются Оперой, открываются, но окно остаётся сокрытым, пока не будет открыто командой
     
    cmdow 0x1C0108 /VIS

    Всего записей: 313 | Зарегистр. 17-09-2010 | Отправлено: 15:45 02-05-2017 | Исправлено: metatrop, 15:47 02-05-2017
    AlfaOmega

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    пошел по пути наименьшего сопротивления
    убиваю мозиллу постоянно
     
    taskkill /im firefox.exe /f - акт насилия
    timeout /T1   - пауза в одну секунду
     
    дальше продолжаю эту экзекуцию до истечения нужного времени
     
    Добавлено:
    но пока остается сложным вопрос  - как отработать нужную кнопку в активном окне - получается это может стороннее что-то должно делать  - поиск - нажатие.
    возможно ли в скрипте перебором табуляции найти искомое и выполнить,
     
    допустим в активном окне 3 кнопки YES  NO SKIP - как перебором табуляции достичь и нажать искомое

    Всего записей: 10 | Зарегистр. 09-11-2012 | Отправлено: 16:16 02-05-2017
    Simoid



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Прошу помочь с написанием следующего батника:
     
    @echo off  
    if exist x:\nul (net use x: /delete /yes)
    else (net use x: \\10.0.1.1\Pub /User:Pub Pub)
    exit
     
    Задача: при запуске проверяем есть ли подключенный диск. Если есть "шара", то удаляем её и закрываем приложение. Если шары нет, то подключаем сетевой диск и exit.
    Нужно, чтобы пользователь одним бат-ником мог подключать и отключать сетевую шару.
     
    P.S. Написанный мною батник "ругается" и не выполняет нужное.

    Всего записей: 1004 | Зарегистр. 23-07-2005 | Отправлено: 16:23 03-05-2017 | Исправлено: Simoid, 16:24 03-05-2017
    YuS_2



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Simoid
    Синтаксис-то соблюдать надо, хоть какой-то
    1. nul - зарезервированное имя для cmd
    2.

    Код:
    @echo off
    if exist x:\ (net use x: /delete /yes) else (
        net use x: "\\10.0.1.1\Pub" Pub /User:Pub
    )
    exit /b

     
    Ну, а чтобы ещё и оповещать о том, что происходит:

    Код:
    @echo off
    if exist x:\ (
        >nul net use x: /delete /yes
        echo Диск X: отключен
    ) else (
        >nul net use x: "\\10.0.1.1\Pub" Pub /User:Pub
        echo Диск X: подключен
    )
    echo.
    pause&exit /b

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 16:54 03-05-2017 | Исправлено: YuS_2, 17:08 03-05-2017
    RSEREGAR



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Необходимо удалить все папки (с содержимым) в корзину, в которых отсутствуют текстовые файлы (*.txt)

    Всего записей: 700 | Зарегистр. 26-10-2008 | Отправлено: 22:57 10-05-2017
    Inoz2000



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

    Код:
    for /f "tokens=1 delims=" %%D in ('dir /ad /b /s') do dir "%%~D\*.txt"||echo Recycle.exe "%%~D"
    для удаления используется программа Recycle.exe из cmdutils.zip
    удаление происходит в соответствии с настройками Корзины.
     
    P.S. работу не проверял. :©)

    ----------
    Мы все умрём. (-:

    Всего записей: 4878 | Зарегистр. 23-04-2009 | Отправлено: 23:49 10-05-2017
    RSEREGAR



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Inoz2000
    Не удаляет. Просто перечисляет, что в папке. Система win10.  
    Если проблема с удалением в корзину, можно переместить в папку "D:\New"

    Всего записей: 700 | Зарегистр. 26-10-2008 | Отправлено: 02:11 11-05-2017 | Исправлено: RSEREGAR, 02:20 11-05-2017
    Inoz2000



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    RSEREGAR
    Цитата:
    Если проблема с удалением в корзину, можно переместить в папку
    это вам лучше знать, куда можно и куда нельзя.

    ----------
    Мы все умрём. (-:

    Всего записей: 4878 | Зарегистр. 23-04-2009 | Отправлено: 08:49 11-05-2017
    kostyamks



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем, привет!
    Есть такая задача, нужно чтоб при проверке соединения с интернетом  Batник при отсутствии интернета выдавал окно типа "инет пропал" а после появления соединения окно типа "Вы в сети" Сделал такой бат для проверки сети:
     
    @echo off
    :loop
    2>nul ping -n 4 ya.ru | >nul findstr "TTL" || (
    1>>connect.tmp echo.%date% - %time:~,5%
    call :rewritelog
    )
    1>nul 2>&1 ping -n 1 -w 60000 127.255.255.255
    goto:loop
     
    :rewritelog  
    for /f "tokens=1 delims=:" %%i in ('findstr /r /n "." connect.tmp') do set "disconnects=%%i"
    1>connect.log (
    echo.--------------------
    echo.ADSL Information
    echo.--------------------
    echo.Disconnected: %disconnects% min
    echo.--------------------
    type connect.tmp
    echo.--------------------
    )
     
    Для отображения окна уведомления хочу использовать утилиту nircmd.exe в таком исполнении:
    nircmd.exe trayballoon "ОНЛАИН" "Инет пропал" "user32.dll,4" 2000
    nircmd.exe trayballoon "ОНЛАИН" "Вы в сети" "user32.dll,4" 2000
     
    как объединить эти два кода в одно целое и заставить все работать)

    Всего записей: 284 | Зарегистр. 12-09-2009 | Отправлено: 14:44 11-05-2017 | Исправлено: kostyamks, 14:47 11-05-2017
    boi1eI

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kostyamks
    Как-то так:

    Код:
    @echo off  
    :loop  
    2>nul ping -n 4 ya.ru|>nul findstr "TTL" && (
    if %err% neq 0 (
    set err=0
    nircmd.exe trayballoon "ОНЛАИН" "Вы в сети" "user32.dll,4" 2000
    ))||(
    >>connect.tmp echo.%date% - %time:~,5%
    call :rewritelog
    if %err% neq 1 (
    set err=1
    nircmd.exe trayballoon "ОНЛАИН" "Инет пропал" "user32.dll,4" 2000  
    ))
    >nul 2>&1 ping -n 1 -w 60000 127.255.255.255  
    goto:loop
     
    :rewritelog  
    for /f "tokens=1 delims=:" %%i in ('findstr /r /n "." connect.tmp') do set "disconnects=%%i"  
    1>connect.log (  
    echo.--------------------  
    echo.ADSL Information  
    echo.--------------------  
    echo.Disconnected: %disconnects% min  
    echo.--------------------  
    type connect.tmp  
    echo.--------------------
    )  

    Всего записей: 1645 | Зарегистр. 02-10-2014 | Отправлено: 15:31 11-05-2017
    kostyamks



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

    Всего записей: 284 | Зарегистр. 12-09-2009 | Отправлено: 16:36 11-05-2017
    Inoz2000



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

    ----------
    Мы все умрём. (-:

    Всего записей: 4878 | Зарегистр. 23-04-2009 | Отправлено: 17:07 11-05-2017 | Исправлено: Inoz2000, 20:44 11-05-2017
    AntoshAReal



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте!
    Прошу подсказать как передать параметры в батник.
    Есть вызов батника, к примеру такой: batname.cmd /parametr
    где вместо parametr могут быть:
    c
    p
    s
    Причём в некоторых случаях это может быть так: batname.cmd /s:15645
    Необходимо только сделать определение какая буква была передана после слэша, игнорируя всё после неё, дальше уже через if буду обрабатывать.
    Спасибо!

    Всего записей: 305 | Зарегистр. 31-08-2005 | Отправлено: 08:27 12-05-2017 | Исправлено: AntoshAReal, 08:31 12-05-2017
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 12
    KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru