Попробуйте это:
string args = @"C:\tmp\tmp.txt && Notepad.exe c:\tmp\tmp2.txt";
Причина в том, что \
запускает escape-последовательность, то есть текст, который вы передаете в качестве аргументов, действительно такой:
C: mp mp.txt && Notepad.exe c: mp mp2.txt
\t
является escape-последовательностью для табуляции.
Единственная разница между моим кодом и вашим - это @
перед строкой.Это говорит компилятору интерпретировать строку буквально.Если вам нужно узнать больше, имя для этого - «дословная строка».
ОБНОВЛЕНИЕ:
Вы можете использовать этот код:
string app = "cmd";
string args = @"/c Notepad.exe C:\tmp\tmp.txt && Notepad.exe c:\tmp\tmp2.txt";
using (Process process = new Process())
{
process.StartInfo = new ProcessStartInfo(app, args)
{
UseShellExecute = false,
CreateNoWindow = true,
};
process.Start();
process.WaitForExit();
}
Он будет использовать cmd.exe для выполнения составной команды.Я изменил CreateNoWindow
на true
, чтобы не показывать окно командной строки, а только окна блокнота.