2016-10-03 11 views
0

別のマシンにある.cmdファイルを実行する必要があります。このコードは出力を印刷することになった​​別のマシンでbatファイルを実行して出力を取得する

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(); 
     } 

    } 
} 

:私が持っているコードから提示された\\IP\Location\File.cmd

:私は次のようにそのマシンのファイルシステムにアクセスすることができます。しかし、それは.cmdファイルの内容を示しています。

私はそのマシンでスクリプトを実行するのではなく、そのスクリプトを実行すると思います。ローカルで実行しています。 どうすれば修正できますか?

+1

バッチファイルの世界では、通常MicrosoftのPSEXECユーティリティを使用してリモートコンピュータでコードを実行します。 – Squashman

+0

@Squashman少し説明していただけますか? – Nivedita

+2

私はjavaについて何も知らないので、javaで動作させる方法を説明することができません。私は、リモートコンピュータ上でバッチファイルを実行する必要がある場合、psexecを使用することを知っています。 https://technet.microsoft.com/en-us/sysinternals/pxexec.aspx – Squashman

答えて

0

私は最初の懸念があると思います:File.cmdをローカルマシンで実行できますか?ローカルマシン上に適切なソフトウェアがないため(File.cmdが依存しているため)、実行に失敗することがあります。コマンドラインで実行したときにエラーが発生すると、javaを使用して実行するときにも同じエラーが発生します。 File.cmdの複雑さやローカルマシンにどのソフトウェアをインストールして動作させる必要があるかによって、ローカルマシンでの実行に適したものにすることは長い作業です。

あなたは(あなたがローカルマシンのターミナルの前に座っている間)リモートマシン自体でそれを実行したい場合で指摘したように一方で、あなたはPsExecまたはwmicを使用することができますがコメントの他のもの

関連する問題