1

Windows 用の Java コマンド ライン アプリケーションを作成し、そのコマンドの結果を文字列変数に格納しました。

私の質問は、cmd の出力を保存した場所からその変数から部分文字列を取得することは可能ですか?

cmd出力文字列変数に部分文字列が見つかった場合にアクションを作成するステートメントを入れたいです。

アプリケーション クラスのメソッドは次のとおりです。

public static void main(String[] args) throws IOException, InterruptedException
{
    runWndCommand("ping 192.168.11.3");
}

public static void runWndCommand(String cmd) throws IOException, InterruptedException
{
    Runtime runtime = Runtime.getRuntime();
    Process p = runtime.exec(new String[] { "cmd.exe", "/C", cmd });

    Scanner reader = new Scanner(p.getInputStream());

     while (reader.hasNext())
     {
        String r=reader.nextLine();
        System.out.println(r);
     }
     p.waitFor();
 }
4

2 に答える 2

1

あなたの例のように使用する方法の簡単なcontains()例:

String r = reader.nextLine();

System.out.println(r);

if (r.contains("abc")) {
    System.out.println("abc found");
} else {
    System.out.println("abc not found");
}

これは、 が 内の部分文字列であるabc found場合に表示されます。"abc"r

于 2012-12-16T18:41:36.557 に答える
0

java.util.regex.Patternを検討してください。これは、文字列に期待するものが含まれているかどうかをテストするためのより柔軟な方法です。

于 2012-12-16T19:25:13.757 に答える