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

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

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

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

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

Сообщение bestonix »

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

Проблема образовалась и никак не могу ничего поделать с этим.
В общем есть 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;

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

Сообщение Padre_Mortius »

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

Сообщение bestonix »

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


Ничего не мешает, но мне кажется это не хорошо.
Приспичит установить в другом месте и надо не забыть прописать там такую же папку.
И может оказаться, что буковка занята, а пользователь привык к такому раскладу и пошло-поехало. К пользователю надо относиться бережно, я так думаю )))
И потом может вполне оказаться, что такой же подход реализовал какой нить другой программист.
Короче по моему проблемы могут возникнуть на ровном месте.
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

запуск скриптов с сетевого диска, имхо, не очень правильное решение
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение 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'
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

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

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

Сообщение Brainenjii »

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

Сообщение bestonix »

Благодарю всех ответивших за помощь.
Все заработало как положено.
SAK
постоялец
Сообщения: 158
Зарегистрирован: 17.02.2006 23:45:14
Откуда: Тим
Контактная информация:

Сообщение SAK »

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:
Ответить