Пытаюсь разработать программу на С++ по созданию древа каталогов и назначение разрешений к ним через PowerShell.
Как мне поставить в строку " или ' ?
Текущий код
String gip = "start powershell.exe $acl = Get-ACL \\asiart-group.kz\Obmen\projects"+dirname+" \n $Rule=new-object System.Security.AccessControl.FileSystemAccessRule (asiart-group\gip,Modify,ContainerInherit,ObjectInherit, None,Allow) \n $acl.AddAccessRule($Rule)";
Что мне примерно нужно получить
String gip = "start powershell.exe $acl = Get-ACL \\asiart-group.kz\Obmen\projects"+dirname+" \n $Rule=new-object System.Security.AccessControl.FileSystemAccessRule ('asiart-group\gip','Modify','ContainerInherit','ObjectInherit','None','Allow') \n $acl.AddAccessRule($Rule)";
Кавычки в строках языков C/C++ пишутся с помощью слэша, пример:
std::string str = "OOO \"My company\" and \`friends\`"
кавычки по краям будут восприниматься как границы строки, а внутренние кавычки, перед которыми стоит слэш (или бэкслэш, я не могу запомнить кто из них кто) воспринимаются как символы в строке.
Нужно экранировать кавычки.
Для этого используйте \ перед символов.
String gip = "start powershell.exe $acl = Get-ACL \\asiart-group.kz\Obmen\projects"+dirname+" \n $Rule=new-object System.Security.AccessControl.FileSystemAccessRule (asiart-group\gip,\'Modify\',\'ContainerInherit\',\'ObjectInherit\', \'None\',\'Allow\') \n $acl.AddAccessRule($Rule)";
Сборка персонального компьютера от Artline: умный выбор для современных пользователей