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

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



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

    Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 05:51 19-10-2017 | Исправлено: villa777, 05:54 19-10-2017
    NIKZZZZ



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

    Цитата:
    Батник нужен для одной программы.

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

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 06:06 19-10-2017
    villa777



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Батник запускает одну портативную программу, и закрывает другую, тоже портативную, если она запущена конечно.

    Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 06:20 19-10-2017 | Исправлено: villa777, 06:21 19-10-2017
    NIKZZZZ



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

    Цитата:
    Батник запускает одну портативную программу, и закрывает другую, тоже портативную, если она запущена конечно.

    Так я же привел пример, запускает prog1.exe , закрывая перед ее запуском prog2.exe.

    Код:
    TASKKILL /IM prog2.exe /f
    START "" prog1.exe  


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 06:28 19-10-2017
    YuS_2



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

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 07:46 19-10-2017
    villa777



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


    Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 08:03 19-10-2017
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    villa777
    Путь должен быть в кавычках.  

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 08:21 19-10-2017
    villa777



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
     
    Блин, у меня даже просто не запускает прогу.

    Цитата:
    START "C:\Firefox\firefox.exe"

    Слеши двойные, и обратные делал, не запускается и всё.

    Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 09:11 19-10-2017
    NIKZZZZ



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

    Код:
    START "Proga" "C:\Firefox\firefox.exe"  
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 09:17 19-10-2017 | Исправлено: NIKZZZZ, 09:17 19-10-2017
    villa777



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Так вроде заработало, спасибо. Но есть маленькая неприятность, при повторном запуске браузера после закрытия батником, вылазит это, как будто он аварийно закрылся.  


    Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 09:51 19-10-2017
    Start



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

    Код:
    @echo off
    cd /d %0\..\Firefox
    start firefox.exe

     

    Код:
    @echo off
    cd /d %0\..\"Путь к программе без указания диска"
    start "Название запускаемой программы.exe"

    Всего записей: 634 | Зарегистр. 28-01-2006 | Отправлено: 09:59 19-10-2017
    villa777



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Start
    Путь к браузеру такой C:\29\Firefox\firefox.exe прописываю путь так cd /d %0\..\"\29\Firefox\firefox.exe" не закрывает. Букву диска убрал. Что не так?

    Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 10:37 19-10-2017
    NIKZZZZ



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

    Цитата:
    Но есть маленькая неприятность, при повторном запуске браузера после закрытия батником, вылазит это, как будто он аварийно закрылся.  

    Тогда нужно убрать  /f  после TASKKILL , но тогда нет гарантии, что программа закроется.
     
     
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 10:53 19-10-2017
    Start



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    villa777
    Открыть браузер (если батник на том-же диске где и программа):

    Код:
    @echo off
    cd /d %0\..\29\Firefox
    start firefox.exe
    @cls

    Открыть браузер (если батник на другом диске):

    Код:
    @echo off
    cd /d C:\29\Firefox 2>nul
    start firefox.exe
    @cls

    Закрыть браузер:

    Код:
    @echo off
    taskkill /F /IM firefox.exe
    @cls

     
    taskkill В Windows XP Home Edition не работает. (На всякий случай.)
    Можно использовать CloseWindow
    CloseWindow  -text=Калькулятор
    Закроет все окна с названием "Калькулятор"
     
    Добавлено:

    Код:
    :: Определяет каталог работы батника - где он находится сам
    cd /d %0\..

     
    Добавлено:
    Вместо cd /d можно использовать pushd
    Ссылка
    Ссылка

    Всего записей: 634 | Зарегистр. 28-01-2006 | Отправлено: 10:59 19-10-2017 | Исправлено: Start, 11:30 19-10-2017
    villa777



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

    Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 11:39 19-10-2017
    Start



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Хотел помочь re2all, но не всё получилось.
    Сообщение

    Всего записей: 634 | Зарегистр. 28-01-2006 | Отправлено: 14:18 19-10-2017 | Исправлено: Start, 17:51 19-10-2017
    ZlydenGL



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребят, помогите, пожалуйста, разобраться.
     
    Задача: в папке А есть подпапки А1, А2, А3.... An, часть из них (только папки) имеют атрибут "скрытый". Мне необходимо собрать список тех файлов, которые находятся не в скрытых папках.
     
    По частям задача решается элементарно: нескрытые папки я нахожу без проблем, внутри конкретной папки тоже легко собираю все файлы, а вот как объединить эти две инструкции в одну команду?
     
    Пробовал решить в один батник и в два (первый формирует батник на запуск, с командами сканирования конкретных папок, второй, создаваемый, уже производит сканирование), но постоянно ловлю ошибки вида "Непредвиденное появление".
     
    Буду благодарен даже за хинт, куда смотреть/что пропустил.

    Всего записей: 4264 | Зарегистр. 22-06-2002 | Отправлено: 16:11 25-10-2017
    Lepar79



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZlydenGL А почему бы папки то же не искать через FOR? Он пропускает скрытые. Если нет, можно поставить проверку на атрибуты.

    Код:
    @ECHO OFF
    CLS
    FOR /D %%D IN (D:\*) DO CALL :DIRS "%%D"
    PAUSE
    EXIT
     
    :DIRS
    FOR /R %1 %%F IN (*) DO ECHO %%F
    EXIT /b


    Всего записей: 80 | Зарегистр. 18-09-2017 | Отправлено: 20:33 25-10-2017 | Исправлено: Lepar79, 20:34 25-10-2017
    YuS_2



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

    Цитата:
    вот как объединить эти две инструкции в одну команду?

    В одну - вряд ли... будет набор вложенных циклов.  
    Тут главный вопрос: насколько принципиально создание сценария на batch? Может быть имеет смысл в сторону powershell взглянуть?

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 09:51 26-10-2017
    ZlydenGL



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Lepar79, практически то, что надо, огроменное спасибо! Правда пришлось немного поправить код, чтобы потом результат можно было запихивать либо в find(str), либо еще в какую конвейерную обработку. Но все равно облом: если я формирую стартовый батник, то после строки, к примеру

    Код:
    CREATE_LISTS > filelist.log

    последующие строки батника уже не выполняются, в чем может быть засада?
     
    YuS_2, про PS думал, но ИМХО в данном случае это будет пальба из пушки по воробьям, да и технически синтаксиса CMD должно хватить с головой...

    Всего записей: 4264 | Зарегистр. 22-06-2002 | Отправлено: 12:31 26-10-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