|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удалить последнюю строку в выводе for |
|
CMD/BAT - [решено] Удалить последнюю строку в выводе for
|
Новый участник Сообщения: 8 |
Доброго времени суток. Написал небольшой скрипт:
@echo off echo 1 > C:\Tools\alarm.txt for /f "skip=3 tokens=8," %%i in ('schtasks /query /fo table /v') DO ( if /i "%%i" neq "0" (echo 0 > C:\Tools\alarm.txt) ) Проблема в том, что сам скрипт так же запускается из планировщика заданий, и в момент работы у задания запуска скрипта появляется новый столбец "Работает", что сдвигает нужный столбец прошлого результата запуска с 8 на 9 место. В 8 столбце вместо "0" оказывается "Работает" и скрипт пишет в alarm.txt "0". Вопрос - как убрать проверку последней строки (задание самого скрипта)? К примеру, сейчас у меня 14 заданий, командой "schtasks /query /fo table /v" выводится 17 строк. Нужно пропускать первые 3 строки и последнюю 17ую строку. Либо в последней строке проверять не 8 столбец, а 9. Спасибо за помощь. |
|
Отправлено: 10:48, 08-06-2021 |
Забанен Сообщения: 793
|
|
Отправлено: 20:26, 08-06-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать |
Отправлено: 22:29, 08-06-2021 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Numufar:
|
|
Отправлено: 22:31, 08-06-2021 | #4 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать не, эта [schtasks /query /fo csv /v|ConvertFrom-CSV] связка извращенно выводит, не для каждой задачи пойдет и эта в их числе
поэтому поменял на List PowerShell $sQuery = Schtasks /Query /Fo List /V $ln = @{} Switch -Regex ($sQuery) { 'Имя задачи[:]\s+(.*)' {$nameT = $Matches[1]} 'Прошлый результат[:]\s+(.*)' { $LTR = $Matches[1] $ln[$nameT] = $LTR } } $ln.GetEnumerator()|sort Value|% { if ($_.Value -eq 0) {'{0,-12} : [{1}]' -f 'Ok', $_.Key} elseif ($_.Value -eq 1) {'{0,-12} : [{1}]' -f 'Error', $_.Key} else {'{0,-12} : [{1}]' -f $_.Value, $_.Key} } PowerShell |
|
Последний раз редактировалось alpap, 10-06-2021 в 01:26. Отправлено: 15:17, 09-06-2021 | #5 |
Новый участник Сообщения: 8
|
Профиль | Отправить PM | Цитировать Спасибо за ответы, попробую сделать красивее. Решил извращенно - скачал линуксовые утилиты под windows и командой head выбрал нужное количество строк сверху.
|
Отправлено: 23:02, 21-06-2021 | #6 |
Забанен Сообщения: 793
|
Цитата Numufar:
|
|
Отправлено: 00:13, 22-06-2021 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Удалить последнее обновление через командную строку | inline | Microsoft Windows 7 | 0 | 18-12-2018 17:47 | |
CMD/BAT - [решено] Как удалить последнюю строку в текстовом файле? | ivanxam | Скриптовые языки администрирования Windows | 35 | 18-09-2018 08:33 | |
PowerShell - [решено] Удалить пустую строку в файле | mapisic | Скриптовые языки администрирования Windows | 1 | 19-08-2015 21:22 | |
CMD/BAT - [решено] Удалить пустую строку в файле .txt | denntl | Скриптовые языки администрирования Windows | 2 | 18-07-2013 11:48 | |
Удалить строку из меню загрузки ОС | ЗВВ | Microsoft Windows 2000/XP | 3 | 10-01-2008 00:00 |
|