Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

BAT программка (поиск файлов по маске)

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Прочее] >> BAT программка (поиск файлов по маске)
Имя
Сообщение << Старые топики   Новые топики >>
BAT программка (поиск файлов по маске) - 2009-03-05 22:00:28.086666   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
Всем привет! :)
Помогите плиз написать батник!!!
Вот условие:

Найти файлы на дисководе, полные имена которых удовлетворяют
следующим условиям:
 
1.1 Расширение начинается на b;
1.2 Длина пути меньше длины имени и расширения;
19.1 Имя начинается с b или bc, расширение с e;
19.2 В имени есть цифры, в расширении их нет или
     в расширении есть цифры, в имени их нет;



И если можно с основными комментариями!!!
Заранее огромнейший спс!!! 

//Учитесь правильно называть темы
//FriLL
Post #: 1
RE: BAT программка - 2009-03-05 22:58:13.010000   
xzet

Сообщений: 115
Оценки: 0
Присоединился: 2009-02-10 23:49:27.830000
ты сам то понял что написал?
Post #: 2
RE: BAT программка - 2009-03-07 11:08:26.983333   
AloneMonaX

Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
Ужас какой-то
Post #: 3
RE: BAT программка - 2009-03-07 13:32:47.163333   
TAPA

Сообщений: 70
Оценки: 0
Присоединился: 2008-02-21 20:02:33.210000
правильно напиши, не понятно. Алгоритм напиши а мы переведем тебе в твой батник нещастный. Хацкер
Post #: 4
RE: BAT программка - 2009-03-09 12:48:33.690000   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
А я и написал как есть!!! Такое вот задание… 

1.1 1.2 - это одно задание, 19.1 и 19.2 - это другое…

Ну а на С это можно сделать ?
Post #: 5
RE: BAT программка - 2009-03-09 13:57:40.833333   
AloneMonaX

Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
Ты нормально папиши алгоритм, мы тоже люди, у нас етсть своё личное время, дела. Мне, например, тупо некогда вникать в смысл задания без алгоритма!
quote:

Ну а на С это можно сделать ?

На си можно все!!!
Post #: 6
RE: BAT программка - 2009-03-09 14:08:21.526666   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
quote:

ORIGINAL: AloneMonaX

Ты нормально папиши алгоритм, мы тоже люди, у нас етсть своё личное время, дела. Мне, например, тупо некогда вникать в смысл задания без алгоритма!
quote:

Ну а на С это можно сделать ?

На си можно все!!!


алгоритма нету…. (
Post #: 7
RE: BAT программка - 2009-03-09 15:00:41.010000   
Fraqter

Сообщений: 123
Оценки: 0
Присоединился: 2009-01-26 21:17:05.456666
quote:

ORIGINAL: DanceStyle

quote:

ORIGINAL: AloneMonaX

Ты нормально папиши алгоритм, мы тоже люди, у нас етсть своё личное время, дела. Мне, например, тупо некогда вникать в смысл задания без алгоритма!
quote:

Ну а на С это можно сделать ?

На си можно все!!!


алгоритма нету…. (


пример реализации через командную строку dir c:\folder\*.h выдаст все файлы в папке c:\folder\ с расширением .h
почитай http://phpclub.ru/detail/article/regexp_1
Post #: 8
RE: BAT программка - 2009-03-09 21:48:23.510000   
tеstеr

Сообщений: 377
Оценки: -46
Присоединился: 2008-02-08 17:56:40.563333
Fraqter правильно сказал, про регулярные выражения.
Именно их и надо выучить.
Например, решение задачи 19:
dir /B | findstr /R "^b.*[0-9].*[.]c[^0123456789.]*$"
dir /B | findstr /R "^b[^0123456789.]*[.]c.*[0-9]*.*$"


Комментарий:
1) dir /B - вернет имена всех файлов в текущей папке.
2) | - то что вернет предыдущая команда надо пустить дальше
3) findstr - команда, которая проглотит то, что вернет dir /B
4) /R - признак того, что findstr будет искать согласно регулярному выражению
5) "^b.*[0-9].*[.]c[^0123456789.]*$" и "^b[^0123456789.]*[.]c.*[0-9]*.*$" - это регялырные выражения.

Для примера разберем "^b.*[0-9].*[.]c[^0123456789.]*$"
будем читать по символам:
^ - первый символ строки должен быть …
b - должен быть равен b
.* - любой символ (это .) повторяется 0 или более раз (это *)
[0-9] - далее должен быть любой символ от 0 до 9 (т.е. цифра)
.* - любой символ повторяется 0 или более раз
[.] - далее должен быть символ . (точка которая отделяет имя от расширения)
c - первысм символом после точти должен быть символ c (первая буква расширения)
[^0123456789.]* - после чего 0 или более раз могут встречаться любые символы кроме цифр и других точек
$ - на этом имя файла должно закончиться.

Для более глубокого изучения набри
help dir
help findstr
Post #: 9
RE: BAT программка - 2009-03-10 07:45:28.736666   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
Fraqter, tеstеr огромное спасибо!!! 
Post #: 10
RE: BAT программка - 2009-03-17 15:20:09.350000   
AloneMonaX

Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
Там просто надо знать какие параметры передавать проге, вот, примерно так:
start arj.exe [параметры]
 
Post #: 11
RE: BAT программка - 2009-03-17 18:20:46.526666   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
quote:

ORIGINAL: AloneMonaX

Там просто надо знать&nbsp;какие параметры передавать проге, вот, примерно так:
start arj.exe [параметры]



Ну если знаешь напиши плиз!!!
А то я батники не писал никогда…
Post #: 12
RE: BAT программка - 2009-03-18 15:45:13.130000   
AloneMonaX

Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
Сорри, я не знаю параметров проги, а возможности проверить нету…хотя…если ты узнаешь и напишешь мне их, то я сделаю=)
Post #: 13
RE: BAT программка - 2009-03-19 12:01:29.133333   
AloneMonaX

Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
Блин, кинь её на [email=alone_monax@xakep.ru]alone_monax@xakep.ru[/email]
Post #: 14
RE: BAT программка - 2009-03-19 21:48:30.596666   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
Скинул ;)
Post #: 15
RE: BAT программка - 2009-03-20 14:15:32.876666   
AloneMonaX

Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
Завтра будет=)
Post #: 16
RE: BAT программка - 2009-03-20 19:36:31.023333   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
Большущее спасибо!!!! :) 
Post #: 17
RE: BAT программка - 2009-03-21 11:58:56.723333   
AloneMonaX

Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
Архивирует:
start arj.exe a -r "Ahv" Разархивирует:
start arj.exe&nbsp;e -r Разархивирует в текущую папку из всех подкаталогов=)
Архивирует в файл "Ahv.arj"
Это пoка простейшие команды, у меня были какие то еще, но здесь в инет-клубе нельзя копировать код=) Так что еще дополню в понедельник
По памяти примерно:
for %%a in(*.arj) do arj.exe e "%%a"
quote:

&nbsp;&nbsp;
Большущее спасибо!!!! :)&nbsp;

Спасибо - это не +1=))))
Post #: 18
RE: BAT программка - 2009-03-21 13:41:01.313333   
AloneMonaX

Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
if exist "Arr.arj" goto end md %temp%\arrr for %%a in (*.*) do copy\wait "G:\111\%%a" "%temp%\arrr\" for %%a in (*.*) do arj.exe a "Arr" "%temp%\arrr\%%a" for %%a in (%temp%\arrr\*.*) do del %temp%\arrr /s /q :end pause &nbsp; for %%a in (*.ARJ) do arj.exe e "%%a"  
if exist "Arr.arj" goto end md %temp%\arrr for %%a in (*.*) do copy\wait "G:\111\%%a" "%temp%\arrr\" for %%a in (*.*) do arj.exe a "Arr" "%temp%\arrr\%%a" for %%a in (%temp%\arrr\*.*) do del %temp%\arrr /s /q :end pause  
В каждом из этих кодов какая то ошибка=)))))))=(((((([&o]
 
 
Post #: 19
RE: BAT программка - 2009-03-21 13:53:42.563333   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
Не архивирует (( а почему ошибки то ????  
Post #: 20
RE: BAT программка - 2009-03-21 13:59:50.663333   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
quote:

ORIGINAL: tеstеr

Fraqter правильно сказал, про регулярные выражения.
Именно их и надо выучить.
Например, решение задачи 19:
dir /B | findstr /R "^b.*[0-9].*[.]c[^0123456789.]*$"
dir /B | findstr /R "^b[^0123456789.]*[.]c.*[0-9]*.*$"



этот код не находит файлов… ( мне нужно чтобы он находил в текущем каталоге…
Post #: 21
RE: BAT программка - 2009-03-21 21:29:25.273333   
tеstеr

Сообщений: 377
Оценки: -46
Присоединился: 2008-02-08 17:56:40.563333
находит.
например файл
b111111111.c
b7.c++
bbb.c040c

например выполни команды (их 5, если тебе считать лень (-: ):
help > b_0k_.c++
help > b_n0.cN0+123
help > bccccccc.c
help > test.txt
dir /B | findstr /R "^b.*[0-9].*[.]c[^0123456789.]*$"

в результате будет 1 имя
b_0k_.c++

имя b_n0.cN0+123 не подошло, так как цифры с двух сторон от точки.
test.txt - вообще ни b ни с не имеет.
bccccccc.c - не имеет цифр.

Ты в условии писал что расширение должно начинаться с буквы E, но я только счас это заметил - ночь, усталость, …
Поправь так, чтобы искало с буквой Е в расширении.
Post #: 22
RE: BAT программка - 2009-03-21 21:45:13.940000   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
По dir /B | findstr /R "^b[^0123456789.]*[.]c.*[0-9]*.*$" находит bbb.c040c

А по dir /B | findstr /R "^b.*[0-9].*[.]e[^0123456789.]*$"  ничего  :(
Post #: 23
RE: BAT программка - 2009-03-22 13:13:46.700000   
tеstеr

Сообщений: 377
Оценки: -46
Присоединился: 2008-02-08 17:56:40.563333
Видимо ты не разобрался в регулярных выражениях и в пояснении которое я раньше писал.

dir /B | findstr /R "^b[^0123456789.]*[.]e.*[0-9]*.*$"
найдет такие имена
b.e1
b.e2
bbbb.e0c
а также bbb.e040c, например.

dir /B | findstr /R "^b.*[0-9].*[.]e[^0123456789.]*$"
найдет такие имена
b1.err
b2.eAbc
bb3bb.eer

А вместе они решают поставленную задачу:
19.1 Имя начинается с b или bc, расширение с e;
19.2 В имени есть цифры, в расширении их нет или
в расширении есть цифры, в имени их нет;


Вот подсказка к решению задачи 1:
dir /S /B | findstr /R ".*[\\]b[^\\]*$" | ForDS.exe

dir /S /B - вернт все имена файлов (с путями)
findstr /R ".*[\\]b[^\\]*$" - выберет те имена, которые начинаютяс на b.
ForDS.exe - программа, которая выберет те имена, длина которых больше длины пути.

Вот прога - на паскале написал, так как подозреваю, что ты только его знаешь, и то плохо (-: )
program forDS;
uses Strings;
var
fileName:string;
pFileName:PChar;
p: PChar;

begin
while( not eof(input)) do
begin
Readln(input, fileName);
fileName[Length(fileName)+1] := #0;
pFileName := (@(fileName[1]));
p := StrRScan(pFileName, '\');
if ( Length(FileName) - StrLen(p) + 1 &lt; StrLen(p) - 1)then
Writeln(fileName);
end;
end.

Я был уверен что ты парень, а судя по фотке в профиле - девушка.
Поэтому все обращения в мужском роде можешь конвертировать на лету (-: я уж переравлять не буду.
Хотя я фоткам не верю и возражений на обраения в мужском роде не поступало, поэтому ты можешь быть кем угодно.
В общем я больше к этой теме с батниками не возвращаюсь.
Все делай самостоятельно.
Post #: 24
RE: BAT программка - 2009-03-22 13:51:14.300000   
AloneMonaX

Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
start arj.exe a -r "Arr" У меня архивирует
start arj.exe e -r "Arr" cls У меня разархивирует
 
Эти команды работают!!!
Post #: 25
RE: BAT программка - 2009-03-22 13:52:53.580000   
AloneMonaX

Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
Ах да… забыл сказать что программа arj.exe(архиватор) должен находится в одном каталоге с BAT программой!
Post #: 26
RE: BAT программка - 2009-03-22 15:48:47.870000   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
quote:

ORIGINAL: tеstеr

Видимо ты не разобрался в регулярных выражениях и в пояснении которое я раньше писал.

dir /B | findstr /R "^b[^0123456789.]*[.]e.*[0-9]*.*$"
найдет такие имена
b.e
b.e68
bbbb.e910c
а также bbb.e040c, например.

dir /B | findstr /R "^b.*[0-9].*[.]e[^0123456789.]*$"
найдет такие имена
b1213.err
b1415.eAbc
bb1617bb.eer

А вместе они решают поставленную задачу:
19.1 Имя начинается с b или bc, расширение с e;
19.2 В имени есть цифры, в расширении их нет или
в расширении есть цифры, в имени их нет;


Вот подсказка к решению задачи 1:
dir /S /B | findstr /R ".*[\\]b[^\\]*$" | ForDS.exe

dir /S /B - вернт все имена файлов (с путями)
findstr /R ".*[\\]b[^\\]*$" - выберет те имена, которые начинаютяс на b.
ForDS.exe - программа, которая выберет те имена, длина которых больше длины пути.

Вот прога - на паскале написал, так как подозреваю, что ты только его знаешь, и то плохо (-: )
program forDS;
uses Strings;
var
fileName:string;
pFileName:PChar;
p: PChar;

begin
while( not eof(input)) do
begin
Readln(input, fileName);
fileName[Length(fileName)+1] := #0;
pFileName := (@(fileName[1]));
p := StrRScan(pFileName, '\');
if ( Length(FileName) - StrLen(p) + 1 &lt; StrLen(p) - 1)then
Writeln(fileName);
end;
end.

Я был уверен что ты парень, а судя по фотке в профиле - девушка.
Поэтому все обращения в мужском роде можешь конвертировать на лету (-: я уж переравлять не буду.
Хотя я фоткам не верю и возражений на обраения в мужском роде не поступало, поэтому ты можешь быть кем угодно.
В общем я больше к этой теме с батниками не возвращаюсь.
Все делай самостоятельно.
">
quote:

ORIGINAL: tеstеr


Видимо ты не разобрался в регулярных выражениях и в пояснении которое я раньше писал.

dir /B | findstr /R "^b[^0123456789.]*[.]e.*[0-9]*.*$"
найдет такие имена
b.e
b.e68
bbbb.e910c
а также bbb.e040c, например.

dir /B | findstr /R "^b.*[0-9].*[.]e[^0123456789.]*$"
найдет такие имена
b1213.err
b1415.eAbc
bb1617bb.eer

А вместе они решают поставленную задачу:
19.1 Имя начинается с b или bc, расширение с e;
19.2 В имени есть цифры, в расширении их нет или
в расширении есть цифры, в имени их нет;


Вот подсказка к решению задачи 1:
dir /S /B | findstr /R ".*[\\]b[^\\]*$" | ForDS.exe

dir /S /B - вернт все имена файлов (с путями)
findstr /R ".*[\\]b[^\\]*$" - выберет те имена, которые начинаютяс на b.
ForDS.exe - программа, которая выберет те имена, длина которых больше длины пути.

Вот прога - на паскале написал, так как подозреваю, что ты только его знаешь, и то плохо (-: )
program forDS;
uses Strings;
var
fileName:string;
pFileName:PChar;
p: PChar;

begin
while( not eof(input)) do
begin
Readln(input, fileName);
fileName[Length(fileName)+1] := #0;
pFileName := (@(fileName[1]));
p := StrRScan(pFileName, '\');
if ( Length(FileName) - StrLen(p) + 1 &lt; StrLen(p) - 1)then
Writeln(fileName);
end;
end.

Я был уверен что ты парень, а судя по фотке в профиле - девушка.
Поэтому все обращения в мужском роде можешь конвертировать на лету (-: я уж переравлять не буду.
Хотя я фоткам не верю и возражений на обраения в мужском роде не поступало, поэтому ты можешь быть кем угодно.
В общем я больше к этой теме с батниками не возвращаюсь.
Все делай самостоятельно.


В профиле фотка девушки - ты прав!!! Но род у меня мужской!!! Эта фотка должна была быть на аве… просто на этом форуме зависают не только программисты и хакеры как ты, а еще и обычные пользователи, которые спрашивают помощи…&nbsp; огромный тебе СПС !!! ;)
Post #: 27
RE: BAT программка - 2009-03-22 16:00:33.313333   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
quote:

В случае пропуска имени архива работа
должна проводиться со всеми архивами в текущем каталоге.
quote:

ORIGINAL: AloneMonaX

start arj.exe a -r "Arr" У меня архивирует
start arj.exe e -r "Arr" cls У меня разархивирует

Эти команды работают!!!


так здесь не достаточно только заархивировать…
В случае пропуска имени архива работа
должна проводиться со всеми архивами в текущем каталоге.
Post #: 28
RE: BAT программка - 2009-03-22 16:24:48.273333   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
tester,
разобрался ))
Post #: 29
RE: BAT программка - 2009-03-23 11:45:48.930000   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
quote:

ORIGINAL: DanceStyle

Всем привет!!! :)
Народ, помогите плиз еще с одной задачкой!!!!

Написать bat-файл для архивирования с помощью программы arj.
В случае пропуска имени архива работа
должна проводиться со всеми архивами в текущем каталоге.
Считать, что имя архива имеет расширение ARJ.


Архиватор - http://depositfiles.com/files/m5bebcnzr



Народ!!!! Очень нужно решение этой задачи !!!!!!!
Post #: 30
RE: BAT программка - 2009-03-23 12:28:26.106666   
AloneMonaX

Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
for %%a in(*.*) do start "arj.exe" e %%a
Работает это?
Post #: 31
RE: BAT программка - 2009-03-23 17:49:51.990000   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
неа ( 
Post #: 32
RE: BAT программка - 2009-03-24 16:37:43.716666   
Wlada

Сообщений: 1233
Оценки: 0
Присоединился: 2007-09-24 12:01:26.970000
всё это должно быть так:

@echo on
@path=С:\полный путь\к архиватору\arj.exe;
@call "arj.exe a -r 'Arr'"

в теории должно работать если команда arj.exe a -r 'Arr' архивирует
Post #: 33
RE: BAT программка - 2009-03-24 18:25:54.170000   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
@echo on
@start arj.exe a -r "Ahv"

вот так работает… а что делать с этой частью (В случае пропуска имени архива работа
должна проводиться со всеми архивами в текущем каталоге.) ???? 
Post #: 34
RE: BAT программка - 2009-03-24 18:37:34.196666   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
quote:

ORIGINAL: Wlada

всё это должно быть так:

@echo on
@path=С:\полный путь\к архиватору\arj.exe;
@call "arj.exe a -r 'Arr'"

в теории должно работать если команда arj.exe a -r 'Arr' архивирует


выдается ошибка….
Post #: 35
RE: BAT программка - 2009-03-29 16:25:17.596666   
AloneMonaX

Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
quote:

в теории должно работать если команда arj.exe a -r 'Arr' архивирует

параметр -r для того чтобы работа производилась со всеми подпапками
Post #: 36
RE: BAT программка - 2009-03-30 14:27:58.930000   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
quote:

ORIGINAL: AloneMonaX
параметр -r для того чтобы работа производилась со всеми подпапками


ага, спс, то есть задание сделано ? :)


Post #: 37
RE: BAT программка - 2009-03-31 15:03:31.030000   
AloneMonaX

Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
Если работает - да)))
Post #: 38
RE: BAT программка - 2009-03-31 21:38:37.780000   
DanceStyle

Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
ага)) работает ))) спс!!!!!!!!!!! ;)
Post #: 39
Страниц:  [1]
Все форумы >> [Прочее] >> BAT программка (поиск файлов по маске)







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.