|
КомандаСистемы() и строка типа батника |
☑ |
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 и заработало.
|
|