プロが教える店舗&オフィスのセキュリティ対策術

C#からバッチファイルを起動しているのですが、
パス名にブランクがあると、cdコマンドがうまく動きません。
ブランクがないと動きます。

例:C:\Documents and Settings\user\My Documents\

バッチファイルを""で囲んでみたのですが、
うまく動きませんでした。

原因が分かれば教えて下さい。


よろしくお願い致します。

C#部分
---------------------------------------------------------------------------------
string strJarPath = Properties.Settings.Default.JarPath;
ProcessStartInfo psInfo = new ProcessStartInfo();
psInfo.FileName = Application.StartupPath + @"\" + "cmdExe.bat";
psInfo.Arguments = strPath

psInfo.CreateNoWindow = true;
psInfo.UseShellExecute = false;
psInfo.RedirectStandardOutput = true;

Process p = Process.Start(psInfo);
---------------------------------------------------------------------------------

※Properties.Settings.Default.JarPath には、
 C:\Documents and Settings\user\My Documents\java を設定


バッチファイル部分
----------------------------------------------------------------------------------
@echo off
cd "%1"
java -cp test.jar Hello
---------------------------------------------------------------------------------

A 回答 (1件)

C:\Documents and Settings\user\My Documents\



上記パスがbatに渡された時に、batの中では空白で区切られて
%1:C:\Documents
%2:and
%3:Settings\user\My
%4:Documents\
となるはずなので、%1を""で囲っても意味がなくなってしまいます。

事前に""で囲まれた文字列を作成してから、batに渡し、batではcd %1とすれば大丈夫だと思います。
    • good
    • 0
この回答へのお礼

教えていただいた方法でうまくいきました。
ありがとうございました!

お礼日時:2011/01/25 13:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています