eXeL@B —› Программирование —› Разборка bat файла |
Посл.ответ | Сообщение |
|
Создано: 22 сентября 2008 19:22 · Поправил: Oott · Личное сообщение · #1 Вобщем тут такое дело, я ни когда ни чего не кодил в батнике(т.к. думаю особо там не разгуляешься), кроме, как может быть start exe . И тут вдруг попалось мне задание подготовить отчёт по собствено этому батнику.Звучит оно примерно так: Code:
НУ собствено разбирая инфу смог написать только сортировку процессов по алфавиту по возрастанию и убыванию: Code:
Но как сделать например чтоб вывелись все процессы на чинающиеся по имени на определённую буквуО_о хз. Оч прошу помочь, т.к. сильно всё это важно. +Написал я это всё не просто так, хотелось бы узнать как можно правильнее написать этот код батника. P.s.как-то надо там с SORT/n мутить , но чёт у меня не выходит P.S.p.s.: поиск юзал, ни чего серьезного на эту тему не нашел. |
|
Создано: 22 сентября 2008 19:42 · Личное сообщение · #2 |
|
Создано: 22 сентября 2008 19:49 · Поправил: Oott · Личное сообщение · #3 |
|
Создано: 22 сентября 2008 20:21 · Поправил: [HEX] · Личное сообщение · #4 Oott Ты справку по tasklist читал хоть? Если не в курсе, то tasklist /? В примере написано же как отфильтровать процессы. Вот тебе отфильтрованые процессы на букву s tasklist /NH /FI "IMAGENAME eq s*" | SORT или сортированые в обратном порядке tasklist /NH /FI "IMAGENAME eq s*" | SORT /R Тебе остается FOR или IF прикрутить для обработки всех параметров. ----- Computer Security Laboratory |
|
Создано: 22 сентября 2008 20:31 · Поправил: Oott · Личное сообщение · #5 Читал, но там формат показан не понятно. И в примерах ниже, ниче похожего небыло. Спасибо за примерчик,всё встало на свои места, дальше я сам разберусь Добавлено Задание оказалось не оч сложным. Вот код, удовлетворяет все условия данного задания: Code:
P.s. если возможно сделать короче(может используя SHIFT), отпишите. |
|
Создано: 23 сентября 2008 10:00 · Поправил: [HEX] · Личное сообщение · #6 |
|
Создано: 23 сентября 2008 12:07 · Поправил: Oott · Личное сообщение · #7 [HEX],ОК, спасибо, но на работоспособность это не повлияло. ДА, вот с этим циклом P.S. Вот цикл проходящий по всем переданым параметрам:, можно обойтись без этого IF:IF /%%i NEQ /%SJ% . Проблема то в чем была, нужно было вывести процессы отсортированные начиная со %2 преданного параметра, пропуская ключ /ASC - «по возрастанию», /DESC - «по убыванию» , который был занесён в %1, в FOR не так просто было это сделать и пришлось пропускать его через прверку в цыкле. А с SHIFT чета не получается, пример: Code:
Там хоть 2 SHIFT'a ставь, всёравно цикл будет проходить начиная с %1 переданного параметра, в этом месте ещё препод чуть запутался и счёл мне отчёт в 10б. |
|
Создано: 23 сентября 2008 16:59 · Личное сообщение · #8 Oott Последний пример вообще непонятен =) Так как там SHIFT будет выполнен 1 раз. Зачем туда его влепил?! Описание по SHIFT читал? В фильтр tasklist попадет ключ/ключи сортировки, что не есть тру! Я наверное немного задание может не допонимаю У каждой группы может быть свой соответствующий ключ сортировки или его вообще может не быть? Так чтоли? Если так, то вызов может выглядить вот так: prog.bat x /DESC a /ASC t s e /ASC Если пример вызова верный, то задание слегка усложняется, но не намного. Вот мой пример решения: Code:
Впринципе оно соответствует заданию на 95%. Остается вывести сообщение если ничего вообще не найдено. Для этого смотрим результаты работы tasklist и если в процессе всего цикла ничего так и небыло найдено, то и выводим соответствующее сообщение. Думаю это не составит труда добавить? Если же параметр сортировки общий для всех групп и этот параметр указывается в самом начале, то впринципе еще проще: Code:
----- Computer Security Laboratory |
|
Создано: 23 сентября 2008 22:43 · Личное сообщение · #9 [HEX], Хватит спрашивать читал ли я описание. Читал SHIFT это нечто врде - сдвиг подставляемых параметров. В фильтр tasklist попадет ключ/ключи сортировки, что не есть тру! Я ж написал,что не получается. По моим доводам параметры должны были сместиться и в фильтр не должен был попасть ключ, если это сделать без цикла, а как ты написал с использованием goto :loop, то всё нормально работает. P.S. задание проще, ключ для всех один. |
|
Создано: 24 сентября 2008 00:05 · Личное сообщение · #10 Oott Виндовый хелп бывает более полно расказывает описание комманды! Цитирую: Использование %* с командой shift Команда shift не влияет на пакетный параметр %*. Поэтому и сделал вывод что не читал описание комманды shift или читал не полностью Ну раз задание простое "с одним общим ключем сортировки", то берем второй вариант и шлифуем напильником: вывод результата помещаем в переменную, проверяем в конце цикла есть ли в буфере что то, и если ничего нет, то пишем сообщение о хреновой выборке это в общих чертах... ----- Computer Security Laboratory |
eXeL@B —› Программирование —› Разборка bat файла |
Эта тема закрыта. Ответы больше не принимаются. |