Имя: Пароль:
1C
1С v8
КомандаСистемы() и строка типа батника
0 Aradel3d
 
09.11.15
08:54
Добрый день!
Возникла такая проблема с кавычками: хочу из обработки запустить строку к исполнению, формирую ее из параметров-переменных. При сборке получается рабочая строка, которая исполняется в cmd, но при исполнении внутри КомандаСистемы(), пишет что 'C:\Program' is not recognized as an internal or external command, operable program or batch file. - отсекает по пробелу.

Строка на выходе вот такая:
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.exe" -U "sa" -P "123456" -S "servername" т.е. путь к exe обрамлен кавычками. Сталкивались с таким?
1 Aradel3d
 
09.11.15
08:58
КомандаСистемы("""C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.exe"""); отдельно также фурычит. А вот после прибавления ЛогинSQLBQP = " -U ""sa""" и прочих параметров уже нет. Но повторюсь, что результат итоговая строка в cmd работает.
2 НЕА123
 
09.11.15
09:04
(0)
второй параметр
?
3 1Сергей
 
09.11.15
09:05
"""C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.exe"" -U ""sa"" -P ""123456"" -S ""servername"""
4 Aradel3d
 
09.11.15
09:07
(2)
ЛогинSQLBQP = " -U ""sa""";
ПарольSQLBQP = " -P ""123456""";
СерверSQLBQP = " -S ""servername""";

КомандаСистемы("""C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.exe"""+ЛогинSQLBQP+ПарольSQLBQP+СерверSQLBQP);
5 Aradel3d
 
09.11.15
09:09
(3) Две кавычки у пути до exe уже не воспринимаются как строка, начинает подсвечивать фрагменты как переменные, только три кавычки годны к дальнейшим прибавлениям переменных.
6 Fedor-1971
 
09.11.15
09:12
А так:
"""C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.exe "+ЛогинSQLBQP+ПарольSQLBQP+СерверSQLBQP+"""
по сути тебе нужно передать строку в кавычках.
7 Aradel3d
 
09.11.15
09:20
(6) Третья кавычка в конце считается как открывающий новый строковый фрагмент и ); подкрашивается как строка.
8 Fedor-1971
 
09.11.15
09:24
(7) тогда поставь ещё одну, будет 4 и закроется предыдущая строка
9 Aradel3d
 
09.11.15
11:26
Для будущих поколений... ничего хорошего с кавычками не вышло, ни три ни две. Если прибавлять переменные работать строка программно отказывалось, хоть и была рабочей для батника. В итоге попробовал задействовать второй параметр КомандаСистемы()<ТекущийКаталог> вынес туда путь до exe и заработало.
Основная теорема систематики: Новые системы плодят новые проблемы.