0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 16
|
||||||
1 | ||||||
Проверка существования задачи в Планировщике заданий27.08.2015, 06:52. Показов 4600. Ответов 6
Метки нет (Все метки)
Всем привет.
3 дня уже бьюсь с проблемой, перечитал уже все, что только можно везде облазил. Цель состоит в проверке состояния нескольких заданий в планировщике задач, если задача включена - отключить ее и вывести информацию, что отключили. Если отключена, вывести информацию, что отключена. Если задачи не существует, вывести информацию, что не существует и идти к следующей задаче. Сразу скажу, я бат файлами занимаюсь так плотно, как сейчас всего неделю. По этому я нуб в этом деле. Все, что делаю за счет полученной инфы от сюда или инета, пробую пока не получится, что необходимо. Не думаю что я делаю это правильно, но главное работает.
Так вот проблема в том, что если задачи не существует выдает "ОШИБКА: Не удается найти указанный файл." Как только я не подставлял еррорлевел, он пишет мне что = 0. И из-за этого я не могу назначить действие при ошибке и в момент ошибки окно бат файла вырубает, я смог только понять, что за ошибка с помощью Console Window Interceptor, который отыскал тут пока маялся с этим. При этой ошибке переменная %%k пустая, я делал условие для нее равной "" но не дает результата. В общем я в тупике. Помогите пожалуйста! =)
0
|
27.08.2015, 06:52 | |
Ответы с готовыми решениями:
6
Создание задачи в Планировщике заданий Создание задачи в Планировщике заданий Как проверить, запущено ли в Планировщике заданий выполнение задачи? Удаление задания в планировщике заданий! |
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||||
27.08.2015, 10:00 | 2 | |||||
Сообщение было отмечено westyes как решение
Решение
westyes, Добавьте условие на на наличие переменной
1
|
0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 16
|
||||||
27.08.2015, 14:51 [ТС] | 3 | |||||
alpap,
Благодарю, разобрался, все супер!!!! Только я же написал, что я "нуб" (новичек) в этом Полтора часа разбирался с этим %var%, пока не доперло, что имелось в виду моя переменная %reply%. И хороший совет, по добавлению условия при отрицании, сокращает написание количества вариантов событий! А моя проблема с добавлением условия при ошибке, когда пустой ответ, заключалась в том, что надо было мою переменную %reply% заключить в кавычки, тогда при пустом ответе приходили кавычки "", а не пустое место. Вот тогда то и срабатывает условие на просто "", если нет ответа. Так как на пустое место условие не назначить! Только в этом случае надо дополнительно еще добавить символ: ~ в переменную %%k, чтобы убрать дополнительные кавычки на нужном ответе. Либо из условия в ответе убрать кавычки. Вот готовый вариант:
Хотел только спросить. У меня 1 бат файл и в нем много разных задач для выполнения, таких как эта и на подобие. То есть у каждой будет свое значение переменной %fixtask%. И других похожих переменных в разных задачах и с разными значениями. Нужно ли, чтобы значения переменных не пересекались и не вызвало не корректности при выполнении, в эту задачу и во все остальные добавить в начало по setlocal и в конце endlocal? Так как у меня там вызовами call прыгает в разные места bat файла, в зависимости от не обходимого. Я так и не смог разобраться в каких случаях используют эти сетлокалы, а каких нет. И тем более setlocal enabledelayedexpansion и остальные. В справках и описаниях, как то, все заумно.
0
|
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
|
27.08.2015, 15:06 | 4 |
westyes, SetLocal - означает, что все переменные будут локальными и после выхода из Batch-файла обнулятся.
SetLocal EnableExtensions - означает возможность использования дополнительных ключей команд. SetLocal EnableDelayedExpansion - означает возможность использовать восклицательные знаки (!variable!) для раскрытия значения переменной внутри цикла. setlocal enableextensions enabledelayedexpansion Добавлено через 6 минут Не дописал, ноут б/у крашится в гомоэкран иногда, полное применение и endlocal (если надо, если еще в батнике работают другие батники и им это мешает) на отключение.
1
|
0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 16
|
|
27.08.2015, 15:19 [ТС] | 5 |
В общем стало более понятно. Спасибо.
Из этого я понял, что в моем бат файле, раз он один сам все делает, только он еще у меня создает другой бат файл и записывает туда строчки при необходимости, использовать сетлокал и ендлокал не нужно? Так как мне то же не понятны понятия "локальный" и "внутри цикла" и в конце в вашей фразе все слова: "ноут б/у крашится в гомоэкран" значения этого не могу осилить
0
|
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||||
27.08.2015, 15:21 | 6 | |||||
А можно простым языком. Переменная %%? после выхода из for обнулится, в for - назначенная %var%, будет иметь первое значение, !var! - следующее ей присвоенное другой или в другой команде, ну, например, вывели из for какую-то %var% и в этом цикле, если пойдет команда, например if "%var%"==..., то уже надо сперва сначала SetLocal EnableDelayedExpansion, и if "!var!"==..., а вот как в Вашем случае, можно было и
Добавлено через 1 минуту - это мои проблемы, будут деньги буду решать.
1
|
0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 16
|
|
27.08.2015, 15:31 [ТС] | 7 |
Все теперь и это более мене понятно, и ваша та фраза, я то подумал,
что это какое то сокращение значений в бат Теперь запишу себе ваше объяснение сетлокал и буду пытаться полностью осознать. Благодарю еще раз за все ответы. Тема полностью решена!
0
|
27.08.2015, 15:31 | |
27.08.2015, 15:31 | |
Помогаю со студенческими работами здесь
7
Удаление запланированных заданий в планировщике Выключение компьютера в планировщике заданий Создать задачу в планировщике заданий windows Выбивает ошибку при запуске в «планировщике заданий» Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |