![]() |
закрыть определенное количество калькуляторов, а не все сразу
пытаюсь сделать лабу.. универ.. Создать файл bat который выполняет следующее: На вход пакетному файлу приходит число ( N ) (как параметр пакетного файла). Открывается N калькуляторов (программно), затем закрываются все запущенные калькуляторы, кроме одного. - мое задание. вот мой код
@echo off cd c:\windows\system32 set /p p=N= for /l %%a in (1,1,%p%) do start " " calc.exe && timeout /t 1 && cls set /a i=%p%-1 for /l %%b in (1,1,%i%) do taskkill /f /im Calculator.exe && timeout /t 1 && cls pause первая половина работает отлично, т.е открывается введенное мной число калькуляторов, но закрываются все, а мне нужно чтобы закрылись все, кроме одного. Думаю проблема в команде taskkill, пробовал exit, тож не робит( Спасибо заранее. |
Khmel_19, убивайте по PID
|
sov44, так фишка в том, что хоть 100 калькуляторов будет запущено, pid будет "одинаковый и общий" для всех
|
Цитата:
Khmel_19, например так Код:
@echo off |
sov44, C:\Users\я>tasklist | find /i "calculator.exe"
Calculator.exe 7604 Console 3 57*784 КБ при запущенных 2ух калькуляторах, код не робит, ну или я его не так использую. Мою задачу он не решает, но спасибо) |
Цитата:
Цитата:
Цитата:
Предположим, пусть это будет последний запущенный: Код:
@echo off |
Iska, мало что понял из выше написанного, но точно понял что это не работает.sov44, у меня 10 винда, поэтому pid не подходит
|
Цитата:
Или, может быть, Вы не знаете, что такое «параметр пакетного файла» и как его задавать? Цитата:
|
Цитата:
Iska, прошу использовать не калькуляторы а блакноты |
Khmel_19, хорошо.
1. Копируете в буфер обмена следующий код: Код:
@echo off 3. Открываете окно командной строки (Win-R, cmd.exe, Enter). 4. Пишете в нём полный путь к сохранённому пакетному файлу (можно просто перетянуть пакетный файл в окно командной строки из Проводника). 5. Через один пробел параметром пакетного файла указываете будущее количество экземпляров запущенного приложения, то самое Ваше: Цитата:
![]() В данном примере путь к пакетному файлу — «C:\Мои проекты\0198\0001.cmd», количество экземпляров, указанное первым и единственным параметром пакетного файла — «5». 6. В окне консоли командной строки нажимаете Enter, запуская пакетный файл на исполнение, и видите примерно такую картину: Скрытый текст
![]() Запущено пять новых экземпляров Блокнота, в окне консоли командной строки перечислены идентификаторы их процессов (у Вас они будут, разумеется, свои). Вы можете посмотреть в Диспетчер задач или Process Explorer и убедиться, что их пять, что перечислены именно их идентификаторы, что шестой процесс Блокнота — это тот незакрытый Блокнот, в котором мы создавали и сохраняли наш пакетный файл (это видно по заголовку окна): ![]() 7. В окне консоли командной строки нажимаете для продолжения на любую клавишу и видите примерно такую картину: Скрытый текст
![]() Первые четыре Блокнота из запущенных пакетным файлом принудительно были закрыты, остался только один последний Блокнот. Тот Блокнот, в котором мы создавали и сохраняли наш пакетный файл, тоже остался открытым, т.е., никак не был затронут работой пакетного файла (как и должно быть по уму). |
Iska, Боже, даже не знаю как вас отблагодарить. Все работает, но мне нужно тоже самое в консоли линукс, я скачал git (эмулятор), не знаю есть ли смысл снова просить вас о помощи, после того что вы для меня сделали, но если есть время и желание, то прощу сделать то же самое и в консоли линукс)
|
Цитата:
Возможно, в соответствующем разделе: Программирование в *nix подскажут быстрее. |
Iska, огромное спасибо!
|
Время: 11:16. |
Время: 11:16.
© OSzone.net 2001-