Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.11;
Скачать: CL | DM;

Вниз

DOS-команда   Найти похожие ветки 

 
Tornado ©   (2002-10-31 16:11) [0]

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

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


 
Song ©   (2002-10-31 16:14) [1]

А разве можно удалить каталог через del ?
Я всегда думал, что для удаления каталогов предназначена команда rd да и то для пустого каталога.

Чтобы не было потверджения надо сказать компу, чтобы он автоматически отвечал "y" на все запросы?

ECHO Y | del data


 
NickBat ©   (2002-10-31 16:22) [2]

А эта команда вообще каталоги удаляет?
У меня из командной строки под Win2000 ничего не получилось.
А чтоб без вопросов надо так:

del /Q d:\data

Кстати иногда полезно набирать в командной строке:

del /?


 
Zemal ©   (2002-10-31 16:31) [3]

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


 
Zemal ©   (2002-10-31 16:34) [4]

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


 
Tornado ©   (2002-10-31 16:47) [5]

> 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 - это пароль

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


 
Tornado ©   (2002-10-31 16:52) [6]

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


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

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


 
Zemal ©   (2002-10-31 17:04) [8]

Ну и что там сложного? Па паскале такое ненаписать что-ли? Единственная загвоздка - это последняя строка... покапай в хелпаке по функции 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
В чём проблема я непонимаю? Неможешь запустить файл с параметрами что-ли?


 
Zemal ©   (2002-10-31 17:06) [9]

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


 
Tornado ©   (2002-11-01 07:08) [10]

> Zemal © (31.10.02 17:06)

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


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


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"


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

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

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

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


 
SottNick ©   (2002-11-01 09:19) [13]

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


 
vedmed ©   (2002-11-01 09:34) [14]

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


 
Song ©   (2002-11-01 11:15) [15]

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


 
AL2002 ©   (2002-11-01 11:35) [16]

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


 
Anatoly Podgoretsky ©   (2002-11-01 11:45) [17]

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


 
Zemal ©   (2002-11-01 11:55) [18]

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

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. Терпеть ненавижу элементарные вопросы разжёвывать до последней строчки кода... ненавижу ставить ";" за ньюбиков, которые нехотят думать, а хотят от тебя на блюдечке с голубой каёмочкой готовый код... ребят, я ко всем таким обращаюсь, ну имейте совесть, прикладывайте хоть немного усилий со своей стороны!


 
AL2002 ©   (2002-11-01 11:57) [19]


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

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


 
Zemal ©   (2002-11-01 11:57) [20]

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


 
Zemal ©   (2002-11-01 12:29) [21]

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


 
AL2002 ©   (2002-11-01 12:35) [22]


> Zemal © (01.11.02 12:29)

Не серчай.



Страницы: 1 вся ветка

Текущий архив: 2002.11.11;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.022 c
8-34135
DuMA
2002-07-21 15:58
2002.11.11
Как вывести изображение на время загрузки программы?


1-34030
sterran
2002-11-01 19:08
2002.11.11
Помогите найти компонент TextReport...


7-34264
DNT
2002-09-08 17:04
2002.11.11
Научите меня drag n drop у :-)


14-34249
Дремучий
2002-10-10 21:59
2002.11.11
Кто что скажет про Lindows?


1-33960
Tornado
2002-10-31 16:11
2002.11.11
DOS-команда