在app.config文件中,我有:
add key="DataFileLocation" value="E:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\"/>
在我的代码中:
Process P2 = new Process();
P2.StartInfo.FileName = "restore.bat";
P2.StartInfo.Arguments = + "\"" + DataFileLocation.ToString() + "\"";
P2.StartInfo.UseShellExecute = false;
P2.StartInfo.RedirectStandardOutput = true;
P2.StartInfo.CreateNoWindow = true;
P2.Start();
'restore.bat'的输出是:
-v dataloc=\"E:\\Program Files\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER\\MSSQL\\DATA\\\"
正如你所看到的,开头有一个额外的“\”,它打破了bat / sql语句......
安德鲁
答案 0 :(得分:0)
在您的情况下,您似乎已经添加了额外的\
,根据您的逻辑输出也是如此。
组合路径的最佳方法是,您应该使用静态Path
类提供的Path.Combine
方法,它会处理所有额外的\
试试这个
var finalPath = Path.Combine(DataFileLocation.ToString(), "what_ever_path_you_want_to_combine");