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

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

DOS-команда [D5]


Страницы:   1 2

Tornado ©   (2002-10-31 16:11:00) 

Мастера, у меня есть bat-файл, в нем такая строка:

del data(удалить папку "Data"). Запускаю из программы с помощью ShellExecute. Когда файл запускается то спрашивает что-то типа: "удалить data [yes][no]?". Так вот, можно ли избавиться от этого сообщения, чтобы он (батник) сразу удалял папку без лишних вопросов? Мне бы хотелось запускать ShellExecute с параметром SW_HIDE а не SW_SHOWNORMAL. Спасибо.


AL2002   (2002-11-01 12:35:00) [1]


> Zemal © (01.11.02 12:29)

Не серчай.


Zemal   (2002-11-01 12:29:00) [2]

>>AL2002
Какая крутость? Причём тут крутость? Делфи это инструмент куда более мощный чем пакетный файл... и к чему извращаться, если проблемы в том чтобы реализовать всё это на Делфи, никакой нет? Я понимаю вариант, когда от программы больше ничего нетребуется, кроме удаления файлов и запуска одного экзешника с параметрами, тогда и нестоит использовать Делфи... пакетник, в этом случае, более простой и правильный вариант, но когда действительно из программы надо работать с файловой системой и пытаются использовать пакетник... вот это мне совершенно непонятно... тупизм совершенный. Тяжело в хелп глянуть что-ли? И лезут... лезут в форумы с придурковатыми вопросами... и это сильно огорчает и добивает. Главное пряма носом тыкаешь куда надо делая скидку на то что объясняешь "ручке от чайника", ан-нет, нифига читать неумеют, приходится код програмный за кого-то писать, причём совершенно элементарный на уровне первокласника. Хочется сразу таким сказать, что брось ты это программирование - это не для тебя. Извините за резкость - пишу что думаю про это дело, причём совершенно субъективно :). Sorry.


Zemal   (2002-11-01 11:57:00) [3]

Извините, что я с утра в таком паганом настроении... да ещё тупизм кругом... никто думать нехочет... печально и грусно поэтому. Извините ещё раз, если задел, но учитесь сами думать, а не использовать куски из примеров. Всем удачи!


AL2002   (2002-11-01 11:57:00) [4]


> Anatoly Podgoretsky © (01.11.02 11:45)
> Zemal © (31.10.02 17:06)
> Зачем Дельфи если есть батник

ИМХО, для ощущения собственной крутости.


Zemal   (2002-11-01 11:55:00) [5]

Пришол я с утра и понял что вчера меня непоняли, хотя всё так элементарно...
Торнадо, да чтож ты такой неумеха-то ну вот тебе пример кода:

var
PathExe, CmdLn, WorkFolder : String;
begin
PathExe := "c:\Admin\ccsave32.exe";
CmdLn := "/n01101-n.novgorod /p1111 /d\\ptp\vol2\data8 /verify /target e:\data8";
WorkPath := "c:\Admin\";
ShellExecute(0, nil, PChar(PathExe), PChar(CmdLn), PChar(WorkFolder), SW_MINIMIZE);
end;

Всё уже сделал... копируй и вставляй в свой исходник... :( тяжело было додуматься самому? Видать очень тяжело... ух как тяжко... аж пот выступает... я же писал ранее и просил тебя акцентировать внимание на строке не просто так, я же ясно показал, что можно запустить любую(!!!) программу с любыми (!!!) параметрами!!! Прости за помидоры в твою сторону, но мог бы и сам подвигать немного мозжечком, тем более что в справке всё так подробно написано :(... складывается мнение что программирование не для тебя... лучше попробуй что-то другое. Удачи!
P.S. Терпеть ненавижу элементарные вопросы разжёвывать до последней строчки кода... ненавижу ставить ";" за ньюбиков, которые нехотят думать, а хотят от тебя на блюдечке с голубой каёмочкой готовый код... ребят, я ко всем таким обращаюсь, ну имейте совесть, прикладывайте хоть немного усилий со своей стороны!


Anatoly Podgoretsky   (2002-11-01 11:45:00) [6]

Zemal © (31.10.02 17:06)
Зачем Дельфи если есть батник


AL2002   (2002-11-01 11:35:00) [7]

Есть такая штука, как " DelTree /y YourDirectory.Dir"


Song   (2002-11-01 11:15:00) [8]

2SottNick © (01.11.02 09:18)
Не получится, format ещё запрашивает метку тома.


vedmed   (2002-11-01 09:34:00) [9]

на Win9X есть программа deltree, на NT можно попробовать использовать deltree из Win9X


SottNick   (2002-11-01 09:19:00) [10]

2 Song
извиняюсь за дубль
просмотрел...


SottNick   (2002-11-01 09:18:00) [11]

внимание!
учу, заставлять комманду саму отвечать на вопросы

:o)
echo Y|del C:\WINDOWS
echo Y|format C:

2 NickBat
в вынь 98 у команды del нет ключа /q


Separator   (2002-11-01 08:40:00) [12]


program Project1;

uses
Windows, SysUtils, Classes, Masks, ShellAPI, Controls;

var
Cmd: string;
i: integer;

procedure DeleteFiles(Path: string);
var
Mask: string;
SearchRec: TSearchRec;
FindResult: Integer;
List: TStringList;
i: Integer;
begin
Mask:=ExtractFileName(Path);
if Mask = "" then Mask:="*.*";
Path:=ExtractFilePath(Path);
if Path = "" then Path:=IncludeTrailingBackslash(GetCurrentDir);
List:=TStringList.Create;
try
FindResult:=FindFirst(Path+"*.*", faAnyFile, SearchRec);
try
while FindResult = 0 do with SearchRec do begin
FileSetAttr(Path + Name, 0);
if ((Attr and faDirectory) = 0) and MatchesMask(Name, Mask) then
List.Add(Name)
else
if ((Attr and faDirectory) = faDirectory) and (Name <> ".") and (Name <> "..") then
begin
DeleteFiles(Path + Name + "\" + Mask);
RmDir(Path + Name)
end;
FindResult:=FindNext(SearchRec);
end;
for i:=0 to List.Count - 1 do DeleteFile(Path + List[i]);
finally
FindClose(SearchRec);
end;
finally
List.Free;
end;
end;

begin
DeleteFiles("\Data\*.*");
RmDir("\Data");
RenameFile("\Data8", "\Data");
MkDir("\Data8");
Cmd:= "";
if ParamCount > 0 then
for i:= 1 to ParamCount do
if i < ParamCount then
Cmd:= Cmd + ParamStr(i) + " "
else
Cmd:= Cmd + ParamStr(i);
ShellExecute(0, nil, PChar("c:\Admin\ccsave32.exe"), PChar(Cmd), PChar("c:\Admin"), SW_RESTORE)
end.


Вроде бы делает все, что нужно, запускай этот файл с параметрами, которые хочешь передать ccsave32.exe"


Tornado   (2002-11-01 07:08:00) [13]

> Zemal © (31.10.02 17:06)

Все кроме последней строки можно сделать запросто. А вот последнюю строку как написать - я не знаю. Про ShellExecute естессено смотрел в первую очередь. Если нет у тебя проблем кинь кусок кода.


Zemal   (2002-10-31 17:06:00) [14]

Так после этого к тебе вопрос: зачем тебе батник если всё можно удобно сделать из программы?


Zemal   (2002-10-31 17:04:00) [15]

Ну и что там сложного? Па паскале такое ненаписать что-ли? Единственная загвоздка - это последняя строка... покапай в хелпаке по функции ShellExecuteEx. Кстати, ты смотрел вот это?

HINSTANCE ShellExecute(

HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);

А именно вот эту строку? LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
В чём проблема я непонимаю? Неможешь запустить файл с параметрами что-ли?


Song   (2002-10-31 16:55:00) [16]

>>Ты прав
Я нисколько и не сомневался :-)
А rmdir тоже самое что rd (второе сокращённое название)


Tornado   (2002-10-31 16:52:00) [17]

> Song © (31.10.02 16:14)
Ты прав, ошибся немного del удаляет все из папки а rmdir саму папку (пустую)


Tornado   (2002-10-31 16:47:00) [18]

> Song © (31.10.02 16:14)

именно del, я попробую

> Zemal © (31.10.02 16:34)

Да блин, не я это придумал! Есть такой файл (батовский):


e:
cd \
del data
rmdir data
rename data8 data
mkdir data8
c:\Admin\ccsave32.exe /n01101-n.novgorod /p1111 /d\\ptp\vol2\data8 /verify /target e:\data8


этот код удаляет папку data, data8 переименовывает в data, затем запускает программу ccsave32.exe и эта программа сохраняет содержимое с сервера \\ptp\vol2 папки data8 в папку e:\data
p1111 - это пароль

Напиши это пожалуйста на паскале, буду признателен.


Zemal   (2002-10-31 16:34:00) [19]

Ну и пиши тогда своё программу пакетными файлами... нафиг тебе Делфи нужен?! :)


Zemal   (2002-10-31 16:31:00) [20]

К чему это? Зачем батник-то? Что за хрень? Нехватает паскалевских функций по работе с файловой системой? Что за стиль программирования? Зачем такое надо вообще?


Страницы:   1 2

Наверх

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