Страницы

Поиск по вопросам

вторник, 5 марта 2019 г.

Есть ли возможность при запуске .bat файла установить факт был ли он запущен вручную или автоматически(Task sheduler)?

OC: Windows 2008 R2 Enterprise
Моя ситация: С помощью Task Sheduler ежедневно запускается определенный .bat файл. Иногда есть потребность запускать его вручную.
Моя задача: При ручном запуске от Юзера, после прохождения команд оставить консоль открытую (Pause) чтобы прочитать логи. При этом после запуска с помощью Task Sheduler процесс должен терминироваться без Паузы. %USERNAME% не подходит, так как TS запускает бптник от того же пользователя, что и запускает его вручную.
Есть ли возможность определить запускает батник Task Sheduler? Может можно терминировать программу другим способом? Например через минуту после того как она дойдет до конца?


Ответ

Вариант 1. Настройте запуск этого самого батника с параметром. В самом батнике проверяйте параметр:
if "%1"=="" pause
или вот так:
if not "%1"=="nopause" pause
Вариант 2. Научите пользователя запускать батник не двойным кликом - а как полагается, из командной строки. Командная строка не закрывается просто так.
Вариант 3. Научите пользователя запускать батник используя FAR Manager. Там можно посмотреть консольный вывод скрыв панели (Ctrl+O)

Но самым "красивым" способом я считаю создание отдельного ярлыка для батника. В этом ярлыке настраивается запуск файла через cmd с ключом /k. Ключ /k означает "выполнить команду и не закрывать консоль":

Комментариев нет:

Отправить комментарий