Форум: "Основная";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.008 c