Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.009 c
1-33951
kant
2002-11-01 10:38
2002.11.11
высвобождение памяти


1-34076
MegaVolt
2002-10-30 17:26
2002.11.11
Как извлекать форму из репозитария и где хранятся её исходники?


14-34192
Юрий Зотов
2002-10-21 18:17
2002.11.11
Поиск книги


3-33889
AM
2002-10-22 13:43
2002.11.11
Как заставить НД не обманывать?


14-34181
Valt
2002-10-21 16:54
2002.11.11
Стив Тейксейра, Ксавье Пачеко. Borland Delphi 6





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский