CyberSecII Ответов: 1

Я не могу заставить все эти двойные косые черты работать вместе пожалуйста помогите


Я хочу добавить эту команду
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" "C:\Users\admin\Desktop\Install.exe""
в процессе работы начните вот так

ProcessStartInfo processStartInfo = new ProcessStartInfo
{
   FileName = "cmd",
   Arguments = "/k cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" "C:\Users\admin\Desktop\Install.exe"", 
   WindowStyle = ProcessWindowStyle.Hidden,
   UseShellExecute = true,
   ErrorDialog = false
};



но я получаю ошибки от двойных косых черт, пожалуйста, помогите.

Что я уже пробовал:

Я пытался разбить команду на части, как это"++", но это не работает.

gggustafson

Вы пробовали вербальные идентификаторы? Видишь ли https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/verbatim

CyberSecII

Не могли бы вы показать мне экзамен?

1 Ответов

Рейтинг:
5

phil.o

Вам нужно только заключать пути между двойными кавычками, когда где-то в пути есть пробел; что здесь не так. Более того, если вы хотите, чтобы в строке появилась двойная кавычка, вы должны экранировать ее обратной косой чертой \ И наоборот, если вы хотите, чтобы обратная косая черта появилась в строке, вы должны также экранировать ее, что приводит к двойной обратной косой черте \\.
Все это вместе взятое:

ProcessStartInfo processStartInfo = new ProcessStartInfo
{
   FileName = "cmd",
   Arguments = "/k cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start C:\\Users\\admin\\Desktop\\Install.exe\"",
   WindowStyle = ProcessWindowStyle.Hidden,
   UseShellExecute = true,
   ErrorDialog = false
};


CyberSecII

команда должна оставаться такой, какой она была, потому что если вы удалите двойные брызги, то команда станет бесполезной, она не выполнит свою работу. все двойные брызги больше всего остаются там, есть ли другой способ сделать это без редактирования самой команды?
УМК /мин /ц "установить __номинал_слой=RUNASINVOKER &амп;&амп; старт "" "C:\Users\admin\Desktop\Install.exe""

phil.o

Если они непременно должны быть здесь, тогда делай, как я тебе сказал: Беги от них.

Arguments = "/k cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"C:\\Users\\admin\\Desktop\\Install.exe\"\""

CyberSecII

Спасибо, что нашли время помочь мне!! Вы очень помогли мне понять, как я могу исправить свою ошибку!!

phil.o

Пожалуйста.