Мне нужно выполнить файл .cmd
, который находится на другой машине. Я могу получить доступ к файловой системе из этой машины, как: \\IP\Location\File.cmd
Выполнение файла bat на другой машине и получение вывода
код у меня есть от: http://omtlab.com/java-how-to-run-exe-file-and-batch-file-using-java-program/
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
public class GetResponseMain {
//This is Example that display how to get response using java
public static void main(String args[])
{
String filePath = "\\\\255.255.255.0\\Scripts\\ClearCache.cmd";
try {
Process p = Runtime.getRuntime().exec(filePath);
p.waitFor();
InputStream in = p.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int c = -1;
while((c = in.read()) != -1)
{
baos.write(c);
}
String response = new String(baos.toByteArray());
System.out.println("Response: "+response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Этот код должен был напечатать вывод. Но он показывает содержимое файла .cmd
.
Я думаю, что вместо выполнения сценария на этой машине. Он выполняет его локально. Итак, как я могу это исправить?
Ну, в мире командного файла мы обычно используем утилиту Microsoft PSEXEC для выполнения кода на удаленном компьютере. – Squashman
@Squashman, пожалуйста, объясните немного? – Nivedita
Я ничего не знаю о java, поэтому я не смог бы объяснить, как заставить его работать в java. Я просто знаю, что если мне нужно выполнить пакетный файл на удаленном компьютере, я использую psexec. https://technet.microsoft.com/en-us/sysinternals/pxexec.aspx – Squashman