私は私のJavaプログラムからbatファイルを呼び出す必要がバットファイルのパスは、その名前にスペースを持つフォルダが含まれています。私はこれらのフォルダ名を逃れることができていますが、問題はbatファイルのパスは、変数から来ていると私は変数の値をエスケープする方法がわからないということです。 batファイルの変数から渡されたときに名前にスペースを含むフォルダ名をエスケープするにはどうすればよいですか?
パス: - C:/マイデータ/ batfile.bat 私のコードスペースをエスケープするには:
これは
String t = "C://\"My Data\"//BatFile.bat";
Process process=Runtime.getRuntime().exec("cmd /c start /wait "+t);
これは動作しません正常に動作
String t = path+"//BatFile.bat";
Process process=Runtime.getRuntime().exec("cmd /c start /wait "+t);
上記のパス変数には、batファイルのパス "C:/ My Data"が含まれています。
提案?
2つ目のシナリオでは、 'PATH'の値は何ですか? –
は、あなたが正しいならば、彼は 'でReplaceAll(」『』\\\\『) 'あなたは全体のパスを逃れることができる – Jens
@Jensで空白をエスケープしてみてください+パス+「// BatFile.bat \」」、パスは、私はそれが 『\\』または 『\\\\』 –