字符串文字中不需要的斜杠

时间:2013-03-22 01:06:20

标签: c# string filenames string-literals

我正在尝试将文件名传递给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();

1 个答案:

答案 0 :(得分: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"