Запуск BAT-файла в фоновом режиме с invisible.vbs, но как его остановить? - PullRequest
2 голосов
/ 06 апреля 2011

Я использую решение, подобное упомянутому здесь Запустите bat-файл в фоновом режиме , но рассматриваемый файл bat запускает майнер Bitcoin GPU в фоновом режиме. Иногда я хочу остановить майнера, но так как я пытаюсь запустить его незаметно (потому что я не хочу его на своей панели задач), я не могу остановить процесс. Я даже не могу найти его в моем диспетчере процессов (нет cmd.exe или conhost.exe). [Я даже не уверен, что он работает.] Любая помощь?

редактировать: это наиболее определенно работает; открытие процесса с окном показывает, что майнер работал с половинной мощностью, что в прошлом указывало на то, что майнер был открыт дважды.

edit2: вот содержимое пакетных файлов, если это помогает.

командный файл, который я запускаю, чтобы запустить все:

wscript.exe "D:\Desktop\invisible.vbs" "C:\Program Files (x86)\Bitcoin\DiabloMiner\bpm.bat"

bpm.bat:

cd "C:\Program Files (x86)\Bitcoin\DiabloMiner"
java -cp target\libs\*;target\DiabloMiner-0.0.1-SNAPSHOT.jar -Djava.library.path=target\libs\natives\windows com.diablominer.DiabloMiner.DiabloMiner -u <username> -p <password> -o <pool> -p 8332 -w 64 -f 1000

invisible.vbs:

set args = WScript.Arguments
num = args.Count

if num = 0 then
    WScript.Echo "Usage: [CScript | WScript] invis.vbs aScript.bat <some script arguments>"
    WScript.Quit 1
end if

sargs = ""
if num > 1 then
    sargs = " "
    for k = 1 to num - 1
        anArg = args.Item(k)
        sargs = sargs & anArg & " "
    next
end if

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False

Ответы [ 2 ]

2 голосов
/ 06 апреля 2011

Не видя содержимого пакета, я предполагаю, что CMD.exe запускает ваш пакет, который запускает ваш биткойн-процесс, а затем завершается.Это объясняет, почему вы не видите CMD.exe.

Если вы хотите увидеть пример, когда вы увидите cmd.exe, вы можете создать пакет, который никогда не заканчивается таким образом.

:TOP
REM FOO
GoTo TOP

Затем запустите inivisible.vbs с этим пакетом, и вы увидите cmd.exe в своей задаче.Если вы используете Process Explorer, вы сможете увидеть имя пакетного файла в командной строке для изображения.Что бы выглядело примерно так

`cmd / c" "C: \ Whaterver \ Looptest.bat" "

ОБНОВЛЕНИЕ

Как Гарри Стейнхилберуже указал, что процесс будет java.exe

Если вы запустите обозреватель процессов и выберите Java.Exe, вы должны увидеть это в командной строке

java -cp target\libs\*;target\DiabloMiner-0.0.1-SNAPSHOT.jar -Djava.library.path=target\libs\natives\windows com.diablominer.DiabloMiner.DiabloMiner -u <username> -p <password> -o <pool> -p 8332 -w 64 -f 1000

Это позволит вам идентифицировать DataMiner из других приложений Java (если таковые имеются), которые вы используете.

0 голосов
/ 01 июля 2013

Вы можете использовать VBScript.

set shell=createobject("wscript.shell")
dim cmdline
cmdline="C:\path\to\yourprogram.jar" ' HERE
set wmi=getobject("winmgmts:{impersonationLevel=impersonate}!\\"&shell.expandenvironmentstrings("%computername%")&"\root\cimv2")
for each process in wmi.instancesof("Win32_process")
    if process.name="java.exe" and instr(process.commandline,cmdline)>0 then
        process.terminate
    end if
next

Извините за длинную строку.Измените текст, где написано ЗДЕСЬ, на местоположение файла JAR, и он прекратит его.

...