|
ID процесса можно узнать при его запуске через EXEC TEAM EXEC -pid:&pid notepad.exe|WAIT *%&pid%|MESS. %&pid% //*PID процесса notepad.exe Есть, правда, определённые ограничения: например, запуск папки в проводнике "explorer.exe My_path" ОС преобразует в вызов отдельного окна основного проводника, и отдельного процесса в памяти не будет. Соответственно, ID будет неверным. А вот если запускается программа с уникальным именем, тогда работает без проблем, как EXEC с ключом -pid, так и поиск по процессам (FIND --pid).-92876чтоб производные процессы тоже убивались? В общем случае это называется "дочерние" процессы. Вначале нужно узнать ID "родительского процесса" - в данном случае Totalcmd.exe. Потом получаем (в переменную %&L%) полный список запущенных процессов: FIND --pid*@ &&L, Потом в этом списке ищем по второй колонке (в ней указан ID "родительского процесса") совпадение, и получаем имя утилиты, запущенной от имени Totalcmd.exe Вот как примерно выглядит кусок списка (5248 - это ID Totalcmd.exe, и он же во второй колонке запущенного из-под Totalcmd.exe блокнота): 5248 1784 15260 3744024 132890774372140879 C:\Program Files\Total Commander\Totalcmd.exe "C:\Program Files\Total Commander\Totalcmd.exe" 4000 5248 4824 312002 132890774372140879 C:\Windows\System32\notepad.exe "C:\Windows\System32\notepad.exe"-Насколько я понял задачу, нужно удалить не всё, что запущено из Totalcmd.exe, а всё, что есть в каталоге, где лежит сам Totalcmd.exe. Тогда проще все процессы проанализировать на предмет пути к папке Totalcmd.exe (если путь к этой папке уникален, из самораспаковки - например, %Temp%\My_TC), тогда можно просто убить всё, что запущено из %Temp%\My_TC и её подкаталогов.
|
|
xnik, это нужно для регистрации акронисов ENVI &&xe=HKLM\SOFTWARE\Acronis //указать в переменной %&xe% ключ реестра для регистрации ... ENVI &&te=REGI $%&xe%\CommonComponents //присвоить переменной %&te% функцию регистрации FORX %CurDir%\*.dll,&&de,0,TEAM FNAM -ext &&ne=%&de%|%&te%\%&ne%=%&de% //прошерстить папку с акронисами и зарегистрировать в реестре все dll-ки TEAM %&te%\backup_worker.exe=%CurDir%\backup_worker.exe|EXIT //зарегистрировать в реестре backup_worker.exe|выход из скриптаЭтот кусочек PECMD-скрипта выполняет то же самое, что и такой кусок CMD-скрипта:Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "archive3.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\archive3.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "archive3_adapter.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\archive3_adapter.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "astor_client.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\astor_client.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "boot_assist.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\boot_assist.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "curl.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\curl.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "disk_backup.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\disk_backup.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "expat.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\expat.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "file_backup.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\file_backup.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "icu38.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\icu38.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "kb_link.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\kb_link.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "libcrypto10.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\libcrypto10.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "libssl10.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\libssl10.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "logging.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\logging.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "mspack.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\mspack.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "oem_doc_source.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\oem_doc_source.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "onig.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\onig.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "pcs_io.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\pcs_io.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "re2.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\re2.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "resource.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\resource.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "rpc_client.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\rpc_client.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "thread_pool.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\thread_pool.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "tib_api.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\tib_api.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "tib_mounter.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\tib_mounter.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "ulxmlrpcpp.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\ulxmlrpcpp.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "winpthreads4.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\winpthreads4.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "zstd.dll" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\zstd.dll" /f Reg Add "HKLM\SOFTWARE\Acronis\CommonComponents" /v "backup_worker.exe" /t REG_SZ /d "x:\Program Files\Acronis\TrueImageHome\backup_worker.exe" /f -На всякий случай уточню: PECMD может оперировать локальными переменными. Использовать эти переменные можно, указав режим их использования... либо, что намного проще - по имени переменной. Когда переменная начинается с двойного символа && (например, &&te) - это именно локальная переменная. При этом считываеть её значение нужно с одним &, т.е., %&te%. Преимущество такой переменной - она обрабатывается только в пределах одной программы (подпрограммы), при вызове другой - сразу очищается/теряется. В общем, к такому использованию очень привыкаешь со временем, хотя сначала ничего не понятно. Главное - запомнить, при назначении &&, а при считывании &.
|
|
93011Всем здравствуйте
Пожалуйста, помогите
Как сделать умно такое
Если есть файл 78setup.wcs или если есть файл 78setup.txt то выполнить/вызвать процедуру/функцию 78setup_wcs_script_x86_x64_Run, иначе выполнить/вызвать процедуру/функцию 78setup_Test
Я пробовал такое - не работает IFEX [ 78setup.wcs | 78setup.txt ],CALL 78setup_wcs_script_x86_x64_Run!78setup_Test Спасибо. IFEX [ %Curdir%\78setup.wcs | %Curdir%\78setup.txt ],CALL 78setup_wcs_script_x86_x64_Run!LOAD 78setup_Test
|
SharkyEXE
- Стаж: 7 лет 6 месяцев
- Сообщений: 51
- Репутация:1[+] [-]
|
Прошу прощения, будьте так любезны, научите, а чем отличается или не отличается CALL и LOAD IFEX [ %Curdir%\78setup.wcs | %Curdir%\78setup.txt ],CALL 78setup_wcs_script_x86_x64_Run!LOAD 78setup_Test Когда у меня в коде вот такое_SUB 78setup_wcs_script_x86_x64_Run ITEM -font:14 ,L112T200W170H25,78setup (wcs script),TEAM KILL \%SelSet%|LOAD 78setup.txt _END _SUB 78setup_Test ITEM -font:14 ,L112T200W170H25,78setup (wcs script),TEAM KILL \%SelSet%|LOAD 78setup.txt _END
|
|
А почитать справку? Я ведь всё перевёл - пользуйтесь! CALL - Команда вызова функции или подпроцесса DLL (т.е., того, что _SUB). LOAD - Команда для поочередного выполнения команд из конфигурационного файла (скрипта), т.е., вызов внешнего файла. В данном случае должно быть дважды CALL (я думал, что 78setup_Test - это внешний скрипт) IFEX [ %Curdir%\78setup.wcs | %Curdir%\78setup.txt ],CALL 78setup_wcs_script_x86_x64_Run!CALL 78setup_Test зы: CALL можно упускать, т.е., допустимо и так:IFEX [ %Curdir%\78setup.wcs | %Curdir%\78setup.txt ],78setup_wcs_script_x86_x64_Run!78setup_Test
|
Отправлено: 21-Фев-2022 18:21
(спустя 2 дня 20 часов)
|
93048conty9, а возможно сделать средствами PECMD современную утилиту для автоисправления проблем стартирования винды, которая может разрешить проблем с загрузки как с UEFI, так и по старинке? Я знаю что таких утилит много, но как то совсем неудобно с ними работать. Нужно все ручками делать, читать сложные тексты и т.н. А с PECMD хорошо получается все. У виетнама увидел что то такое, но там язык совсем непонятный. Я читал ваши тексты про загрузчиков. Не так уж просто все это. Видимо вам будет виднее как сделать. Я сейчас пользую техобслуживание из WInst от Ander_73, чтоб возстанавливать загрузку винды, но не знаю, может быть лучше сделать как отдельную утилиту. PECMD - всего лишь инструмент, который позволяет реализовать какой-то свой алгоритм. Вот именно алгоритма такой "утилиты" у меня нет. Как и нет вИдения того, как это вообще можно реализовать.
|
dimo70
- Стаж: 6 лет 11 месяцев
- Сообщений: 3777
- Репутация:27[+] [-]
- Откуда: BG
|
conty9, понял, спасибо.
_________________ Подпись отключена за нарушение правил форума
|
loban_ser
- Стаж: 6 лет 9 месяцев
- Сообщений: 577
- Репутация:24[+] [-]
|
Xemom1, Пока пальцем не тыкнешь
|
dimo70
- Стаж: 6 лет 11 месяцев
- Сообщений: 3777
- Репутация:27[+] [-]
- Откуда: BG
|
|
SharkyEXE
- Стаж: 7 лет 6 месяцев
- Сообщений: 51
- Репутация:1[+] [-]
|
Всем здравствуйте Пожалуйста, помогите сделать по умному Вариант 1) Вот если так, то отлично работаетTEAM DISP W800 H600|LOGO %WinDir%\logo.jpg TEAM IFEX %WinDir%\logo.jpg, LOGO|IFEX %Curdir%\StartWS.txt, LOAD StartWS.txt Вариант 2) Если сделать так, то не работает показ картинки - файла logo.jpgDISP W800 H600 TEAM IFEX %WinDir%\logo.jpg, LOGO|IFEX %Curdir%\StartWS.txt, LOAD StartWS.txt Вариант 3 Если сделать так, то не работает показ картинки - файла logo.jpgDISP W800 H600 IFEX %WinDir%\logo.jpg, LOGO|IFEX %Curdir%\StartWS.txt, LOAD StartWS.txt Пожалуйста, научите, как сделать по умному, чтобы заработало Вариант 1) и/или Вариант 2) conty9 Здравствуйте Я без претензий к кому-то, у меня от этого телега не поедет точно, вот есть файл PECMD.ini, там прописаноTEAM NUMK 0|EXEC *resolution.cmd 1024 768|LOGO %WinDir%\logo.jpg Но физически файла resolution.cmd нету Я Вас очень прошу, научите, как сменить разрешение на 800*600 способом, отличным отПросто когда я загружаюсь как обычная установка, строкаработает отлично, разрешение ставится как 800*600 Но если я гружусь как UEFI, кодне работает, разрешение ставится 1024*768 Спасибо.
|
|
SharkyEXE, команда LOGO без параметров ОТКЛЮЧАЕТ лого. Правильно должно быть так: TEAM DISP W800 H600|IFEX %WinDir%\logo.jpg,LOGO %WinDir%\logo.jpg IFEX %Curdir%\StartWS.txt, LOAD StartWS.txt Вариант 1 должен бы включить лого и сразу же его выключить. А вариант 2 - выключить, даже не включая. В варианте 3 пропущена команда группы TEAM, так что вообще неверный синтаксис. По поводу resolution.cmd - в старых сборках для смены разрешения использовался скрипт resolution.cmd вместе с утилитой dccmd.exe. В ядрах Next я от этого отказался, смена разрешения производится средствами PECMD. Возможно, в некоторых ядрах обычной 2k10 остались "хвосты", я просто больше не интересуюсь этой сборкой, и не хочу заниматься адаптацией её ядер. Почему не работает DISP W800 H600 под UEFI - не знаю, возможно, это разрешение вообще не поддерживается в этом режиме. Думаю, просто нужно после UEFI-загрузки поэкспериментировать с параметрами команды DISP.
|
Отправлено: 22-Фев-2022 13:35
(спустя 1 час 33 минуты)
SharkyEXE
- Стаж: 7 лет 6 месяцев
- Сообщений: 51
- Репутация:1[+] [-]
|
conty9 Здравствуйте. По поводу 1го вопроса - спасибо за науку А вот по поводу 2го вопроса - я Вас очень прошу, напишите, как мне "поэкспериментировать с параметрами команды DISP для UEFI", мол, мне просто надо разрешение 800*600 что в UEFI, что в обычном режиме (в обычном режиме DISP W800 H600 100% отлично работает, я не могу знать причину, тоже самое железо, но в UEFI DISP W800 H600 не работает, в плане при команде DISP W800 H600 в UEFI разрешение осталось 1024*768
|
Страница 12 из 27
Текущее время: 23-Ноя 15:38
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|