|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Разбиение на строки с дальнейшим разбиением на несколько переменных |
|
CMD/BAT - [решено] Разбиение на строки с дальнейшим разбиением на несколько переменных
|
Новый участник Сообщения: 4 |
Профиль | Отправить PM | Цитировать Здравствуйте, есть zabbix и необходимость отслеживания выполнения заданий в планировщике Windows Server 2008
нужен bat файл который будет делать следующее: 1) запускать команду schtasks /query /TN "xxxxxxx" /FO LIST /V которая выдает информацию в следующем виде: Папка: \ Имя узла: xxxxxxx Имя задачи: \Backup Время следующего запуска: 31.01.2014 2:00:00 Состояние: Готово Режим входа в систему: Интерактивный/фоновый Время прошлого запуска: 30.01.2014 1:59:59 Прошлый результат: 0 Автор: xxxxxxx\xxxxxxx Задача для выполнения: C:\scripts\backup.bat Рабочая папка: Н/Д Примечание: Н/Д Состояние назначенной задачи: Включено Время простоя: Отключено Управление электропитанием: Останавливать при питании от батареи Запуск от имени: xxxxxxx\xxxxxxx Удалить задачу, если она не перенесена: Включено Остановить задачу, если она выполняется X ч и X мин: 12:00:00 Расписание: Планирование данных в этом формате недоступно. Тип расписания: Ежедневно Время начала: 2:00:00 Дата начала: 21.12.2013 Дата окончания: N/A дн.: Каждые 1 дн. мес.: N/A Повторять: каждые: Отключено Повторять: до: время: Отключено Повторять: в течение: длительность: Отключено Повторять: остановить, если выполняется: Отключено 2) Выбирать конкретную строку: "Прошлый результат: 0" 3) Давать на выходе значение 0 или 1 из этой строки Помогите пожалуйста никак не могу справиться, пытал через вложенные циклы for (для разделения на строки с дальнейшим разделением на переменные с разделителем ":") но никак не могу с ними справиться. Желательно все через переменные без создания лишних файлов Спасибо |
|
Отправлено: 15:56, 30-01-2014 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Strategist:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=" %%i in (
`schtasks.exe /query /fo csv /v ^| find.exe /i "Солитер"`
) do call :GetLastResult %%i
if defined LastResult echo [%LastResult%]
endlocal
exit /b 0
:GetLastResult
setlocal enableextensions enabledelayedexpansion
set sOut=%~0
endlocal & set %sOut:~4%=%~6
exit /b
|
|
Отправлено: 19:30, 30-01-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1758
|
|
Отправлено: 19:47, 30-01-2014 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Foreigner, а у меня так 8-й токен выходит — по запятой внутри «Время следующего запуска» и «Время прошлого запуска» (если они есть, разумеется).
|
Отправлено: 01:45, 31-01-2014 | #4 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Большое спасибо, Foreigner и Iska
Iska да да действительно на мелкомягком написано что /tn не поддерживается но на самом деле это не так. Ваш пример явно рабочий, но к сожалению заставить его работать как мне нужно я не смог :-))))) у меня он выдает время прошлого запуска, а не следующий параметр т.е. результат запуска. Foreigner кратко ясно лаконично спасибо большое, как я сам не догадался что лучше делать csv ибо тогда разбор идет просто по запятой не знаю...... PS лично у меня по команде help schtasks выдается следующее /NH Указывает, что строка заголовков столбцов не отображается при выводе. Это требуется только для формата TABLE. Поэтому после того как я убрал этот параметр из скрипта все полетело отлично |
|
Отправлено: 08:50, 31-01-2014 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Strategist:
Цитата Strategist:
Цитата Strategist:
|
|||
Отправлено: 09:19, 31-01-2014 | #6 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Как я и писал Windows server 2008 R2 Enterprice
на Windows 7 Pro sp1 работает абсолютно так же как как и на сервере именно в озвученном мной виде Результат выполнения в приложенном файле |
Отправлено: 09:58, 31-01-2014 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Strategist:
Цитата Strategist:
Цитата Strategist:
Цитата Strategist:
|
||||
Отправлено: 10:16, 31-01-2014 | #8 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать да вот так вот немного версия windows поменялась и уже все переписывай, причем ладно бы че-нить полезное добавляли, а то только все местами меняют а глючность как была так и остается... мелкомягкие :-( !!!
Еще раз всем спасибо тема закрыта |
Отправлено: 10:47, 31-01-2014 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] For, чтение двух переменных с каждой строки | DesmondTruman | Скриптовые языки администрирования Windows | 4 | 21-12-2012 03:12 | |
Route/Bridge - Разбиение сети на подсети | OrenLiTo | Сетевые технологии | 1 | 12-12-2012 16:44 | |
Автоматическое разбиение диска на разделы на этапе установки | old_nick | Автоматическая установка Windows 2000/XP/2003 | 0 | 06-04-2011 15:55 | |
[решено] Проблема с разбиением диска на разделы при RIS установке | madmax24 | Автоматическая установка Windows 2000/XP/2003 | 10 | 20-06-2007 12:37 | |
[решено] Разбиение жесткого диска при помощи утилит командной строки. Windows 2003 | UnDetect | Microsoft Windows NT/2000/2003 | 11 | 07-02-2006 15:37 |
|