Список форумов BOSSForum.RU - Форум. БОСС-Кадровик
Независимый форум, посвященный системе БОСС-Кадровик
и всему, что с ней связано
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Выполнение процесса из командной строки

 
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> X-язык
Предыдущая тема :: Следующая тема  
Автор Сообщение
tveritin



Зарегистрирован: 26.01.2016
Сообщения: 191
Откуда: Санкт-Петербург

СообщениеДобавлено: Вс Мар 02, 2025 15:36    Заголовок сообщения: Выполнение процесса из командной строки Ответить с цитатой

Существует конструкция
Код:
SYSTEM "command line";

Но, отследить код возврата (ERRORLEVEL) из X-языка не представляется возможным.
Как обработать код возврата или есть ли функция-аналог для выполнения процесса из командной строки, возвращающая errorlevel ?

Собственно, ответом на вопрос была бы возможность получить из х-языка значение переменной среды %ERRORLEVEL%.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
tveritin



Зарегистрирован: 26.01.2016
Сообщения: 191
Откуда: Санкт-Петербург

СообщениеДобавлено: Пн Мар 03, 2025 11:51    Заголовок сообщения: Ответить с цитатой

Нашел решение, правда на БК пока не отладил:
Код:
declare @error_save int
EXEC @error_save = master.dbo.xp_cmdshell 'command line', 'NO_OUTPUT'
PRINT '@error_save after cmdshell='+Convert(VARCHAR,@error_save)+', 1=fail , 0=ran successfully.'
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
tveritin



Зарегистрирован: 26.01.2016
Сообщения: 191
Откуда: Санкт-Петербург

СообщениеДобавлено: Пн Мар 03, 2025 12:47    Заголовок сообщения: Ответить с цитатой

Можно как вариант оставить как есть и сохранить результат во временную таблицу
Код:
drop table #tmp;
execute xSQL{declare @error_save int
EXEC @error_save = master.dbo.xp_cmdshell 'command line', 'NO_OUTPUT'
select @error_save as c into #tmp};
А потом из неё забрать
Код:
select * from #tmp
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
tveritin



Зарегистрирован: 26.01.2016
Сообщения: 191
Откуда: Санкт-Петербург

СообщениеДобавлено: Пн Мар 03, 2025 17:12    Заголовок сообщения: Ответить с цитатой

Одно не учёл - `command line` будет запускаться НА СЕРВЕРЕ, чего бы не очень хотелось. Так что, решение пока не найдено...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
superjek



Зарегистрирован: 04.04.2022
Сообщения: 29

СообщениеДобавлено: Пт Мар 07, 2025 10:43    Заголовок сообщения: Ответить с цитатой

Можно из секции VB вызвать WScript.Shell метод Run
https://www.script-coding.com/WSH/WshShell.html

Код:

VB
{
   Set WshShell = CreateObject("WScript.Shell")
   RetCode = WshShell.Run("notepad", 1, True)
   MsgBox "Обработка завершена! Код возврата - " & RetCode
};
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Spartak



Зарегистрирован: 18.03.2010
Сообщения: 185

СообщениеДобавлено: Пт Мар 07, 2025 20:21    Заголовок сообщения: Ответить с цитатой

или сборку сделать свою
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> X-язык Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Pоwerеd by рhpВB © 2001, 2005 рhpВB Grouр
Русская поддержка phрВB
Rambler's Top100 Рейтинг@Mail.ru Список форумов BOSSForum.RU