2015-06-15 6 views
-2

В файле app.config, у меня есть:C# двойные кавычки аргумент

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 ...

Andrew

+3

Это дополнительный \ либо уже в строке или идет откуда-то еще в строке кода, который вы разместили. –

+0

Можете ли вы показать полный код? – Ofiris

+0

Я не вижу проблемы здесь! Вы добавляете «\», и ​​появляется слэш .... –

ответ

0

В вашем случае кажется, что вы уже добавляете дополнительный \, так что это результат по вашей логике.

Лучший способ объединить путь, что вы должны использовать Path.Combine метод, предоставленный статическим Path класса, он берет на себя все дополнительные \

Попробуйте

var finalPath = Path.Combine(DataFileLocation.ToString(), "what_ever_path_you_want_to_combine"); 
Смежные вопросы