-1

ファイル名をコマンド プロンプトに渡そうとしています。私はさまざまな場所を見てきましたが、答えが見つからないようです-それは簡単だと確信しています。

私の文字列は次のように構築されています:

string cmd = string.Format(@" -u{0} -p{1} -h{2} -P{3} {4} < ""{5}""",
                user, pass, server, port, database, filename);

ただし、結果は次のような文字列です。

-uuser -ppass -hhost -P1234 database < \"C:\\my file.sql\"

ファイル名の前後の \ を削除するにはどうすればよいですか? ファイルを使用してプロセスを実行する原因が見つかりませんというエラーが発生しました。

私の文字列は次のようにする必要があります:

-uuser -ppass -hhost -P1234 database < "C:\\my file.sql"

編集: OK、この質問は無視してください.. process.start(); で何か他のことが起こっています。

4

1 に答える 1

3

Visual Studio で次のコードを実行してみましたが、出力は正しいです。おそらく、引用符をエスケープする Visual Studio のデバッグ情報を見ているでしょう。

string cmd = string.Format(@" -u{0} -p{1} -h{2} -P{3} {4} < ""{5}""",
    "Test", "Test2", "server", "1337", "db", "C:\\filename.sql");

Console.WriteLine(cmd);
Console.Read();

実際の出力は -uTest -pTest2 -hserver -P1337 db < "C:\filename.sql"

于 2013-03-22T01:11:04.823 に答える