2

我正在使用像这里提到的那样的解决方案在后台运行 bat 文件,但有问题的 bat 文件在后台运行比特币 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

隐形.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
4

2 回答 2

2

在没有看到批处理内容的情况下,我的猜测是 CMD.exe 运行您的批处理,该批处理启动您的比特币进程然后结束。这可以解释为什么您没有看到 CMD.exe。

如果您想在看到 cmd.exe 时看到一个示例,您可以创建一个永远不会像这样结束的批处理。

:TOP
REM FOO
GoTo TOP

然后用这个批处理运行 inivisible.vbs,你会在你的任务中看到 cmd.exe。如果您使用进程资源管理器,您将能够在图像的命令行中看到批处理文件的名称。看起来像这样

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

更新

正如 Harry Steinhilber 已经指出的那样,该过程将是 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

这将允许您从您正在运行的其他 java 应用程序(如果有)中识别 DataMiner。

于 2011-04-05T22:27:18.020 回答
0

您可以使用 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 文件的位置,它将终止它。

于 2013-07-01T00:38:48.660 回答