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