4

サーバー上にリモートにあるbatファイルを実行したい \\testserver\someFolderName\test.bat。私はプロセスビルダーを使用していて、ディレクトリを変更したかったのです procbuilder.directory(....), が、成功しませんでした.

どんな助けでも大歓迎です。ありがとう

4

4 に答える 4

2

過去に、 PSExecを使って手早くやったことはありますが、

リモートコンピューター上のバッチにアクセスするには、必要な引数を使用してプログラムから独自のプロセスとして開始するだけです。

于 2010-09-01T20:01:20.147 に答える
1

これは、現在使用している作業コードです。

try {            
   ProcessBuilder launcher = new ProcessBuilder();
   Map<String, String> environment = launcher.environment();
   launcher.redirectErrorStream(true);
   launcher.directory(new File("\\\\<your remote computer name>\\TIERS\\DEV1\\RP\\VISUAL_BASIC\\"));

   environment.put("name", "var");
   launcher.command("your.exe");
   Process p = launcher.start(); // And launch a new process

} catch (Exception e){
   e.printStackTrace();
}
于 2011-01-19T20:52:35.647 に答える
1

ProcessBuilder の UNC パスを実行できるとは思いませんが、いずれにしても問題ありません。

.bat ファイルを実行するには、Windows コマンド シェルを実行し、それで .bat ファイルを実行する必要があります。コマンド シェルは UNC パスをサポートしていません。これを回避するには、次のようにコマンドを実行します。

cmd.exe /C "pushd \\testserver\someFolderName && test.bat && popd"

基本的に、リモート フォルダーを一時ドライブ (pushd \testserver\someFolderName) としてマウントし、test.bat を実行してから、一時ドライブ (popd) をアンマウントするようにコマンド プロンプトに指示します。

于 2010-09-01T20:01:57.263 に答える