-1

我正在尝试将文件名传递给 cmd 提示符。我看过很多地方,但似乎找不到答案——我相信它很简单。

我的字符串是这样构建的:

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"

编辑:好的,忽略这个问题.. 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 回答