4

Может кто-нибудь сказать мне, что мне нужно написать в [X], чтобы процесс Maplestory.exe был убит при запуске? Я не хочу использовать команды синхронизации, спасибо! (gamelauncher.exe maplestory.exe )

@ эхо выключено
запустите D:\Games\MapleStory\GameLauncher.exe
[ИКС]
taskkill /im MapleStory.exe
выход

4 ответа4

3

Я бы перенаправил вывод из tasklist в find , поиск maplestory и использовал оператор IF и GOTO чтобы продолжить цикл, проверяя этот процесс, пока он не будет найден. Как только он найден, вы можете GOTO в другую точку, чтобы убить задачу.

Нечто подобное должно сработать:

:search
tasklist|find "maple"
IF %ERRORLEVEL% = 0 THEN (GOTO found)
TIMEOUT /T 1
GOTO search

:found
taskkill /im maplestory.exe

(Команда TIMEOUT приостанавливает выполнение сценария на 1 секунду. Это поможет предотвратить чрезмерное всасывание процессором этого цикла.)

1

Почему вы должны что-нибудь запустить? Вы можете просто попытаться завершить процесс в любое время, а затем предпринять действия в случае успеха (оператор && ) или сбоя (оператор || ). Вы можете просто зацикливаться через GOTO, пока не добьетесь успеха.

@echo off
start D:\Games\MapleStory\GameLauncher.exe
:killMapleStory
taskkill /im MapleStory.exe >nul 2>nul || goto killMapleStory
exit

Возможно, вы захотите ввести задержку в 1 секунду в цикле только для экономии ресурсов процессора. MapleStory никогда не будет работать более ~ 1 секунды.

@echo off
start D:\Games\MapleStory\GameLauncher.exe
:killMapleStory
timeout /t 1 /nobreak >nul
taskkill /im MapleStory.exe >nul 2>nul || goto killMapleStory
exit
0

@nhinkle, мне пришлось немного изменить синтаксис в моей 64-битной системе Win7.

    :search
    tasklist|find "maplestory.exe"
    IF %ERRORLEVEL% == 0 GOTO :found
    TIMEOUT /T 1
    GOTO :search

    :found
    TIMEOUT /T 3
    taskkill /IM maplestory.exe 
    exit
-2
powershell -windowstate hidden
:9
tasklist /fi "imagename eq Chrome.exe" /fi "CpuTime gt 00:00:20" > Uit5.dat & findstr "INFO" uit5.dat >NUL & if errorlevel 1 (choice /d y /t 2|choice /d y /t 2)
goto :9
REM you could write to a file, and check if the criteria "INFO" is not present, therefore your original criteria is true.  For Example  You use the criteria chrome with CPU time greater than 20 seconds and make your computer beep when the criteria is existing.

Или в целом

  powershell -windowstate hidden exit
  :9
  tasklist /fi "imagename eq %1" /fi "CpuTime gt %2" > Uit5.dat & findstr "INFO" uit5.dat >NUL & if errorlevel 1 goto :8
goto :9
:8
exit

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .