Войти

Показать полную графическую версию : [решено] реализация tasklist и taskkill в одном батнике с меню выбора


andman84
07-04-2010, 19:28
Учюсь в КА Шаг.
Задал преподаватель интересную задачу - сделать батник, который сначала покажет древо процессов, а затем спросит у пользователя, не хочет ли он удалить какой-либо процесс, и пару вариантов выбора.
Скриптовые языки мы ещё не учили, я что-то сам насочинял, но не то что хочется:


@echo off
title ВЫВОД ДЕРЕВА ПРОЦЕССОВ ПРИ ПОМОЩИ BAT ФАЙЛА
echo.
echo для вывода дерева процессов нажмите 1
echo для выхода нажмите 2
echo После вывода на экран списка процессов выберите PID (номер) нужного Вам
echo и введите комманду "taskkill /pid xxxx" где хххх - значение PID выбранное вами.
Set /p var="Enter 1 or 2: "
if %var%==1 start/B tasklist
if %var%==2 goto exit
cmd /q/k
rem pause(как для примера что не работает с данными праметрами)
exit

Меня больше всего волнует то, что с параметром "start/B" -всё выводится вэтом-же окне и то что написано после меню выбора не работает!
Если без "/B" и без "cmd /q/k " то происходит то что хочется - открывает в новом окне, но без остановки, т.е. блымнуло и всё!
Как побороть?!
Надеюсь подскажет кто, а то гуглить не очень получается...

amel27
08-04-2010, 05:20
andman84, где-то так:


@Echo off
Title ВЫВОД ДЕРЕВА ПРОЦЕССОВ ПРИ ПОМОЩИ BAT ФАЙЛА

:LOOP
CLS
Echo.
Echo L - Вывести дерево процессов
Echo D - Удалить процесс
Echo Q - Выход
Echo.

Set var=
Set /P var="Введите команду: "

If /I "%var%"=="L" TaskList|More
If /I "%var%"=="Q" Exit /B
If /I "%var%"=="D" Call :KILL
GoTo LOOP

:KILL
Echo.
Set var=
Set /P var="Введите PID (номер) процесса:"
Set /A var=%var%+0
If %var% EQU 0 Exit /B

TaskKill /PID %var%
Pause >Nul
Exit /B

andman84
08-04-2010, 19:26
Спасибо!
Удаление правда чё-то не работает, щac посижу, помучаю батник немного...
А так спасибо огромное за ответ!




© OSzone.net 2001-2012