偶尔,Windows机器上的程序会发疯,只是挂起.所以我将调用任务管理器并点击"结束进程"按钮.但是,这并不总是有效; 如果我尝试了足够多次,那么它通常会最终死亡,但我真的希望能够立即杀死它.在Linux上我可以kill -9保证一个进程会死掉.
这也可用于编写批处理脚本,编写批处理脚本是编程.
Windows中是否有一些程序或命令会一直杀死进程? 一个免费的第三方应用程序没问题,虽然我更愿意能够在我第一次坐下来的机器上这样做.
在 Java 中你需要做什么才能让 Runtime.exec() 运行路径上的程序?我正在尝试运行 gpsbabel ,我已将其放入路径(/usr/local/bin)中。
public class GpxLib {
public static void main(String[] args) {
try
{
Runtime r = Runtime.getRuntime();
Process p = r.exec("gpsbabel -i garmin -f usb: -o gpx -F -");
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
while (true)
{
String s = br.readLine();
if (s == null)
break;
System.out.println(s);
}
br.readLine();
} catch (IOException e) {
e.printStackTrace(System.err);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我需要能够使用命令行从正在运行的进程 (cmd.exe) 获取 PID。问题是有两个 cmd.exe 正在运行。一种是用户名 SYSTEM,另一种是 compUser。有没有办法可以获取 compUser cmd.exe 的 PID?
编辑:这需要进一步解释。我正在通过批处理文件执行此操作。我在批处理文件中进行的调用之一启动了一个永不消失的 cmd.exe。所以杀死 cmd.exe 很简单:
taskkill /F /IM cmd.exe /FI "username eq compUser"
Run Code Online (Sandbox Code Playgroud)
问题是我所在的批处理文件正在由用户名 compUser 下的 cmd.exe 的另一个实例处理。我试图做的是在启动第二个 cmd.exe 之前从原始 cmd.exe 获取 PID。这样我就可以使用命令:
taskkill /F /IM cmd.exe /FI "username eq compUser" /FI "PID neq [orignal task's PID]"
Run Code Online (Sandbox Code Playgroud)