Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

bat файл, создание и работа [D7, XP]


AlexDan ©   (2009-09-09 10:32:00) 

понадобилось сделать bat файл,
Fname:='1.bat';
AssignFile(f,Fname);
Rewrite(f);
writeln(f,'DeleteFile('+'P11.exe'+');');
closefile(f);
проблема1. по моему в bat должно быть: DeleteFile('P11.exe'); как я сам удивился, к строке +' ' '+ т.е. просто значёк ' делфи упорно приписывать не хочет..
проблема2. получившийся bat файл удалять ничего не хочет, видимо проблема с правами доступа, может его как-то специально нужно запускать..? просветите пожалуйста..


AlexDan   (2009-09-09 21:28:00) [1]

> Игорь Шевченко ©   (09.09.09 21:26) [14]
здесь же женщины и дети..:))


Игорь Шевченко   (2009-09-09 21:26:00) [2]

'format c: /u'


AlexDan   (2009-09-09 21:07:00) [3]

del "strmat st-ms",  спасибо:)


AlexDan   (2009-09-09 19:05:00) [4]

и ещё вопрос, как в бат удалить файл название которого из 2-х слов?
del strmat st-ms , например?


Eraser   (2009-09-09 17:02:00) [5]

> [10] AlexDan ©   (09.09.09 15:33)

такой подход работает.


AlexDan   (2009-09-09 15:33:00) [6]

и ещё может кто подскажет, обязательно зацикливать бат файл, чтобы он удалил ехе..? т.е. нельзя ли его как-нибудь запустить из самого ехе, например в форм.дестрой?, наверно вряд ли.
имею в виду такой подход:
@echo off
:del_loop
del [полное имя и путь к EXE файлу]
if exist [полное имя и путь к EXE файлу] goto del_loop
del [полное имя bat файла]


AlexDan   (2009-09-09 12:12:00) [7]

что-то не так:  ShellExecute(0,nil,'prm.bat',nil,nil,SW_HIDE);..? как правильно расставить параметры..?


Anatoly Podgoretsky   (2009-09-09 11:31:00) [8]

Кстати в данном случае удобнее запустить процесс DeleteFile, если конечно в сообщение не ошибка, можно запустить процесс cmd и передать ему команду del file

В обеих случаях не придется удалять еще и bat файл c диска, кроме того это может и не пройти, на компьютерах с более/менее серьезной системой безопасности.


Anatoly Podgoretsky   (2009-09-09 11:25:00) [9]

> AlexDan  (09.09.2009 11:20:06)  [6]

Не то что бы удобнее, просто проще, по сравнению с созданием процесса.

Да просто, указать в качестве файла бат файл. Никаких особенностей.


AlexDan   (2009-09-09 11:20:00) [10]

> Anatoly Podgoretsky ©   (09.09.09 11:12) [5]
> Delphi сам прекрасно удаляет файлы без каких либо bat файлов.
нет, нужно чтобы ехе удалил сам-себя, через бат это вроде удобнее.., кстати, как бат запустить через ShellExecute..?


Anatoly Podgoretsky   (2009-09-09 11:12:00) [11]

> AlexDan  (09.09.2009 10:32:00)  [0]

Delphi сам прекрасно удаляет файлы без каких либо bat файлов.


Ega23   (2009-09-09 10:38:00) [12]


> smell-команды


shell-команды, конечно.


Ega23   (2009-09-09 10:37:00) [13]


> проблема1. по моему в bat должно быть: DeleteFile('P11.exe');


Это по-твоему, на самом деле будет DeleteFile(P11.exe);
Чтобы получилось DeleteFile('P11.exe');нужно написать код

writeln(f,'DeleteFile(''P11.exe'');');


> проблема2. получившийся bat файл удалять ничего не хочет,
>  видимо проблема с правами доступа, может его как-то специально
> нужно запускать..? просветите пожалуйста..


А нет такой smell-команды DeleteFile. Есть del[ete]. Вот её и пользуй.


Юрий Зотов   (2009-09-09 10:36:00) [14]

Если апостроф является частью строки, его надо удвоить.
'DeleteFile(''P11exe'');'


AlexDan   (2009-09-09 10:35:00) [15]

всё, спасибо).., должно быть- del p11.exe


Наверх

Титульная страница Поиск, карта сайта Написать письмо