> 文章列表 > 在某个ip下执行某条命令

在某个ip下执行某条命令

在某个ip下执行某条命令

在某个ip下执行某条命令

  1. 根据ip以及服务名称查询该服务安装到的目录
/*** 获取指定ip下,指定服务名称对应的服务安装目录* @param ipAddress* @param serviceName* @return*/
public String getDic(String ipAddress, String serviceName) {String installDir = null;try {// 构建命令行指令ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe","/c","sc \\\\\\\\" + ipAddress + " qc " + serviceName + " | findstr BINARY_PATH_NAME");// 执行命令并获取输出结果Process process = processBuilder.start();BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));String line;while ((line = reader.readLine()) != null) {String[] path = line.trim().split("\\"");if (path.length > 1) {File file = new File(path[1]);installDir = file.getParent();break;}}} catch (Exception e) {e.printStackTrace();}return installDir;
}
  1. 根据ip以及安装到的目录执行cmd命令
/**
* 根据ip以及安装服务的目录执行命令
* @param ipAddress
* @param dic
*/
public static void executeCommand(String ipAddress, String dic) {// 定义要执行的cmd命令和工作目录String[] command = {"cmd", "/c", "vncviewer.exe " + ipAddress};File workingDirectory = new File(dic);// 使用ProcessBuilder来执行命令ProcessBuilder builder = new ProcessBuilder(command);builder.directory(workingDirectory);builder.redirectErrorStream(true);Process process = null;try {process = builder.start();} catch (IOException e) {e.printStackTrace();}// 读取命令输出并打印java.util.Scanner scanner = new java.util.Scanner(process.getInputStream()).useDelimiter("\\\\A");String output = scanner.hasNext() ? scanner.next() : "";System.out.println("output:" + output);// 等待命令执行完成int exitCode;try {exitCode = process.waitFor();} catch (InterruptedException e) {exitCode = -1;}// 打印命令执行结果if (exitCode == 0) {System.out.println("命令执行成功");} else {System.out.println("命令执行失败");}
}

小故事大全