Windows 在后台运行一个BAT文件,使用invisible.vbs,但是如何停止它?
我正在使用一个类似于这里提到的解决方案,但是有问题的bat文件在后台运行一个比特币GPU miner。有时我想停止miner,但由于我试图以不可见的方式运行它(因为我不希望它出现在我的任务栏中),因此无法停止该过程。我甚至在我的进程管理器中找不到它(没有cmd.exe或conhost.exe)。[我甚至不确定它是否在运行]有什么帮助吗 编辑:它肯定在运行;用一个窗口打开流程表明该矿工以一半的产能运行,这在过去表明该矿工打开了两次 edit2:如果有帮助的话,这里是批处理文件的内容 运行批处理文件以启动所有内容:Windows 在后台运行一个BAT文件,使用invisible.vbs,但是如何停止它?,windows,vbscript,batch-file,process-management,Windows,Vbscript,Batch File,Process Management,我正在使用一个类似于这里提到的解决方案,但是有问题的bat文件在后台运行一个比特币GPU miner。有时我想停止miner,但由于我试图以不可见的方式运行它(因为我不希望它出现在我的任务栏中),因此无法停止该过程。我甚至在我的进程管理器中找不到它(没有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
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-p-o-p8332-w64-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
set args=WScript.Arguments
num=args.Count
如果num=0,则
Echo“用法:[CScript|WScript]invi.vbs aScript.bat”
WScript.Quit 1
如果结束
sargs=“”
如果num>1,则
sargs=“”
对于k=1到num-1
anArg=参数项(k)
sargs=sargs&anArg&“
下一个
如果结束
设置WshShell=WScript.CreateObject(“WScript.Shell”)
WshShell.Run“”&WScript.Arguments(0)和“”&sargs,0,False
在看不到批处理内容的情况下,我猜CMD.exe会运行批处理,启动比特币进程,然后结束。这可以解释为什么您没有看到CMD.exe
如果您想在看到cmd.exe时看到一个示例,您可以创建一个永远不会结束的批处理
:TOP
REM FOO
GoTo TOP
然后使用此批处理运行inivisible.vbs,您将在任务中看到cmd.exe。如果使用process explorer,您将能够在图像的命令行中看到批处理文件的名称。看起来像这样
`cmd/c“c:\Whaterver\Looptest.bat”
更新
正如Harry Steinhilber已经指出的,这个过程将是java.exe
如果运行process explorer并选择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-p-o-p8332-w64-f 1000
这将允许您从正在运行的其他java应用程序(如果有)中识别DataMiner。您可以使用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文件的位置,它将终止该文件。我将批处理文件的内容添加到问题中。我不确定你的答案是否对我有帮助。根据批处理文件,我认为CMD.exe不会仍然运行。我会寻找一个java.exe进程来代替它。谢谢Harry!不过,我想我必须注意要杀死哪个java.exe。