Запустить bat-афйл находящийся на сетевом диске

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Запустить bat-афйл находящийся на сетевом диске

Сообщение bestonix » 31.01.2012 09:20:48

Доброго здоровья уважаемые.

Проблема образовалась и никак не могу ничего поделать с этим.
В общем есть bat-файл лежащий в локальной сети и его необходимо выполнить.
Пробую стартануть его тремя способами и ни один не работает.
Путь к файлу выглядит - \\fs\3c\OPERFILE\FoldExec\ldr.bat
Результатом работы должна быть загрузка данных из текстового файла в БД Oracle.
Внутри батника строки запуска sqlldr.exe (оракловый загрузчик) с параметрами, которые представляют собой файлы описания полей.
Параметры "лежат" тут же, рядом с батником
Для запуска пробую такие варианты, но результат всегда отрицательный
P := TProcess.Create(nil);
s := DirDestination2.Directory+'\ldr.bat';

1) CreateProcess(nil, PChar(s), nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, @si, @pi );

2) ShellExecute(FMain.Handle, nil, PChar(s), nil, nil, SW_RESTORE);

3) P.CommandLine := s; P.Execute;

Прошу совета. Что не так делаю ?
bestonix
новенький
 
Сообщения: 66
Зарегистрирован: 15.04.2010 08:26:00
Откуда: Жигулёвск

Re: Запустить bat-афйл находящийся на сетевом диске

Сообщение Padre_Mortius » 31.01.2012 10:02:06

а сетевую папку подключить как сетевой диск что-то мешает?
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Запустить bat-афйл находящийся на сетевом диске

Сообщение bestonix » 31.01.2012 10:35:24

Padre_Mortius писал(а):а сетевую папку подключить как сетевой диск что-то мешает?


Ничего не мешает, но мне кажется это не хорошо.
Приспичит установить в другом месте и надо не забыть прописать там такую же папку.
И может оказаться, что буковка занята, а пользователь привык к такому раскладу и пошло-поехало. К пользователю надо относиться бережно, я так думаю )))
И потом может вполне оказаться, что такой же подход реализовал какой нить другой программист.
Короче по моему проблемы могут возникнуть на ровном месте.
bestonix
новенький
 
Сообщения: 66
Зарегистрирован: 15.04.2010 08:26:00
Откуда: Жигулёвск

Re: Запустить bat-афйл находящийся на сетевом диске

Сообщение Padre_Mortius » 31.01.2012 11:00:13

запуск скриптов с сетевого диска, имхо, не очень правильное решение
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Запустить bat-афйл находящийся на сетевом диске

Сообщение v-t-l » 31.01.2012 11:08:25

Код: Выделить всё
NET USE | FIND " X: "
IF ERRORLEVEL 0 GOTO :X_USED
NET USE X: \\fs\3c\
CALL X:\OPERFILE\FoldExec\ldr.bat
NET USE X: /DELETE
:X_USED


Кроме того, батники сами по себе не могут запускаться - нужен 'cmd.exe /C X:\OPERFILE\FoldExec\ldr.bat'
v-t-l
энтузиаст
 
Сообщения: 741
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Запустить bat-афйл находящийся на сетевом диске

Сообщение Vadim » 31.01.2012 15:24:34

bestonix писал(а):Результатом работы должна быть загрузка данных из текстового файла в БД Oracle.
Внутри батника строки запуска sqlldr.exe (оракловый загрузчик) с параметрами, которые представляют собой файлы описания полей.

А как, на счёт, реализовать всё то же самое прямо в своей программе?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Запустить bat-афйл находящийся на сетевом диске

Сообщение Brainenjii » 31.01.2012 15:26:13

или хотя бы скачать батник с параметрами в директорию пользователя с последующим удалением?
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Запустить bat-афйл находящийся на сетевом диске

Сообщение bestonix » 03.02.2012 08:40:21

Благодарю всех ответивших за помощь.
Все заработало как положено.
bestonix
новенький
 
Сообщения: 66
Зарегистрирован: 15.04.2010 08:26:00
Откуда: Жигулёвск

Re: Запустить bat-афйл находящийся на сетевом диске

Сообщение SAK » 03.02.2012 10:40:46

v-t-l писал(а):
Код: Выделить всё
NET USE | FIND " X: "
IF ERRORLEVEL 0 GOTO :X_USED
NET USE X: \\fs\3c\
CALL X:\OPERFILE\FoldExec\ldr.bat
NET USE X: /DELETE
:X_USED


Кроме того, батники сами по себе не могут запускаться - нужен 'cmd.exe /C X:\OPERFILE\FoldExec\ldr.bat'

Можно и короче, сразу указать UNC путь "cmd.exe /C \\fs\3c\OPERFILE\FoldExec\ldr.bat" не создавая логического диска X:
SAK
постоялец
 
Сообщения: 158
Зарегистрирован: 18.02.2006 00:45:14
Откуда: Тим


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 189

Рейтинг@Mail.ru