字符串字面值中不需要的斜杠

本文关键字:不需要 字面值 字符串 | 更新日期: 2023-09-27 18:05:07

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

字符串字面值中不需要的斜杠

我尝试在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"