Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2010, 11:35   #1
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию Ожидание выполнения файла .cmd

Народ подсажите как можно узнать завершение выполнения файла .cmd после окончания выполенения его надо удалить. Время выполнения файла, зависит от размера БД.
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 30.07.2010, 11:57   #2
Biohazard
Пользователь
 
Регистрация: 23.02.2009
Сообщений: 78
По умолчанию

как только запустиш файл cmd откроется программа cmd.exe тебе лиш остается проследить её завершение,(много способов узнать, запущенно ли приложение), и когда оно закроется, удаляй файл
Biohazard вне форума Ответить с цитированием
Старый 30.07.2010, 12:21   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
после окончания выполенения его надо удалить.
Помоему WinExec запустив, ожидает завершения...
Если нет то стандартным способом через CreateProcess+WaitForsingleObject
на http://www.delphiworld.narod.ru/_all_articles_.html
В разделе DOS и Консоль - [42] смотри. Там есть "Подождать завершения DOS-задачи"
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2010, 13:12   #4
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Помоему WinExec запустив, ожидает завершения...
Если нет то стандартным способом через CreateProcess+WaitForsingleObject
на http://www.delphiworld.narod.ru/_all_articles_.html
В разделе DOS и Консоль - [42] смотри. Там есть "Подождать завершения DOS-задачи"
Воткнул эту функцию
Код:
function WinExecute(CmdLine: string; Wait: Boolean): Boolean;
var
  StartupInfo: TStartupInfo;
  ProcessInformation: TProcessInformation;
begin
  Result := True;
  try
    FillChar(StartupInfo, SizeOf(StartupInfo), 0);
    StartupInfo.cb := SizeOf(StartupInfo);
    if not CreateProcess(nil, PChar(CmdLine), nil, nil, True, 0, nil,
    nil, StartupInfo, ProcessInformation) then
      RaiseLastWin32Error;
    if Wait then
      WaitForSingleObject(ProcessInformation.hProcess, INFINITE);
  except
    Result := False;
  end;
end;
после функции написал процедуру
WinExecute(put+'\b.cmd', true);
deletefile(put+'\b.cmd');
Выполняется верно но не удаляет файл... (
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 30.07.2010, 13:23   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

cmd файл имеется ввиду BAT файл?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2010, 13:35   #6
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
cmd файл имеется ввиду BAT файл?
.bat и .cmd файл это почти одно и то же, текстовые файлы которые запускаются на выполнение, через командную строку, но я исползую расширение файла .cmd
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 30.07.2010, 13:37   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Во!. так пропиши в конце этого файла delete me.cmd и пусть command.com, или как его там, удалит этот скрипт сам
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2010, 13:44   #8
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Во!. так пропиши в конце этого файла delete me.cmd и пусть command.com, или как его там, удалит этот скрипт сам
Ты имеешь ввиду написать
Код:
WinExecute(put+'\b.cmd delete b.cmd', true);
????
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 30.07.2010, 13:50   #9
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

В конце бат-файла допиши del "%~f0", он удалит сам себя
пыщь

Последний раз редактировалось JTG; 30.07.2010 в 13:54.
JTG вне форума Ответить с цитированием
Старый 30.07.2010, 16:06   #10
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
В конце бат-файла допиши del "%~f0", он удалит сам себя
В конце строки не катит, только если я пишу в самом начале, только тогда удаляет ( и так писал del "bd.cmd" все равно не удаляет
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ожидание завершения потоков Voody Общие вопросы Delphi 11 14.06.2016 06:10
Ожидание нажатия клавиши shurik_7866 Общие вопросы Delphi 2 25.04.2010 19:53
Ожидание подключения к серверу. i-cpp C/C++ Сетевое программирование 2 13.02.2010 23:15
Определить содержимое файла f после выполнения операторов Corwin88 Помощь студентам 11 02.06.2008 00:39