0

私は現在Javaを学んでおり、この問題に遭遇しました。私はまだ学習段階にあるので、このようにできるかどうかはわかりません。したがって、私のJavaメインコーディングでは:

import java.io.File;
import java.io.IOException;

public class TestRun1
{
    public static void main(String args[])
    {

        //Detect usb drive letter
        drive d = new drive();
        System.out.println(d.detectDrive());

        //Check for .raw files in the drive (e.g. E:\)
        MainEntry m = new MainEntry();
        m.walkin(new File(d.detectDrive()));

        try
        {
            Runtime rt = Runtime.getRuntime();
            Process p = rt.exec("cmd /c start d.detectDrive()\\MyBatchFile.bat");
        } 
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

「cmd /c start d.detectDrive()\MyBatchFile.bat」が機能しません。変数を置き換える方法がわかりません。

そして、バッチファイル(MyBatchFile.bat)を作成しました:

@echo off
set Path1 = d.detectDrive()
Path1
pause
set Path2 = m.walkin(new File(d.detectDrive()))
vol231.exe -f Path2 imageinfo > Volatility.txt
pause
exit

それは動作しません。笑わないでください。

Javaとバッチファイルを始めたばかりなので、プログラミングは本当に苦手です。誰でも私を助けることができますか?E: またはそのようなものになるようにハードコーディングしたくありません。柔軟にしたい。しかし、私はそれを行う方法がわかりません。私は心から助けを求めます。

4

1 に答える 1

1

手順:

ドライブを検出するメソッドの戻り値をファイル名に追加し、適切なバッチ コマンド文字列を構成する必要があります。

手順:

メソッドの戻り値を取得する

  • 文字列ドライブ = d.detectDrive();
  • したがって、ドライブには値Eが含まれます。

ドライブの値をファイル名に追加します

  • drive+"\MyBatchFile.bat"
  • したがって、E:\MyBatchFile.batがあります。

結果をバッチ コマンドに追加する

  • cmd /c start "+drive+"\MyBatchFile.bat
  • 結果はcmd /c start E:\MyBatchFile.bat です

したがって、バッチ コマンドを呼び出すには、最終的なコードは次のようになります。

    try {
        System.out.println(d.detectDrive()); 
        Runtime rt = Runtime.getRuntime();
        String drive = d.detectDrive();
        // <<---append the return value to the compose Batch command string--->>
        Process p = rt.exec("cmd /c start "+drive+"\\MyBatchFile.bat");
    } 
    catch (IOException e) {
        e.printStackTrace();
    }
于 2014-07-15T05:38:30.083 に答える