BAT программка (поиск файлов по маске)
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
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
|
|
|
RE: BAT программка - 2009-03-05 22:58:13.010000
|
|
|
xzet
Сообщений: 115
Оценки: 0
Присоединился: 2009-02-10 23:49:27.830000
|
ты сам то понял что написал?
|
|
|
RE: BAT программка - 2009-03-07 11:08:26.983333
|
|
|
AloneMonaX
Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
|
Ужас какой-то
|
|
|
RE: BAT программка - 2009-03-07 13:32:47.163333
|
|
|
TAPA
Сообщений: 70
Оценки: 0
Присоединился: 2008-02-21 20:02:33.210000
|
правильно напиши, не понятно. Алгоритм напиши а мы переведем тебе в твой батник нещастный. Хацкер
|
|
|
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 - это другое… Ну а на С это можно сделать ?
|
|
|
RE: BAT программка - 2009-03-09 13:57:40.833333
|
|
|
AloneMonaX
Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
|
Ты нормально папиши алгоритм, мы тоже люди, у нас етсть своё личное время, дела. Мне, например, тупо некогда вникать в смысл задания без алгоритма! quote:
Ну а на С это можно сделать ? На си можно все!!!
|
|
|
RE: BAT программка - 2009-03-09 14:08:21.526666
|
|
|
DanceStyle
Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
|
quote:
ORIGINAL: AloneMonaX Ты нормально папиши алгоритм, мы тоже люди, у нас етсть своё личное время, дела. Мне, например, тупо некогда вникать в смысл задания без алгоритма! quote:
Ну а на С это можно сделать ? На си можно все!!! алгоритма нету…. (
|
|
|
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
|
|
|
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
|
|
|
RE: BAT программка - 2009-03-10 07:45:28.736666
|
|
|
DanceStyle
Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
|
Fraqter, tеstеr огромное спасибо!!!
|
|
|
RE: BAT программка - 2009-03-17 15:20:09.350000
|
|
|
AloneMonaX
Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
|
Там просто надо знать какие параметры передавать проге, вот, примерно так: start arj.exe [параметры]
|
|
|
RE: BAT программка - 2009-03-17 18:20:46.526666
|
|
|
DanceStyle
Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
|
quote:
ORIGINAL: AloneMonaX Там просто надо знать какие параметры передавать проге, вот, примерно так: start arj.exe [параметры] Ну если знаешь напиши плиз!!! А то я батники не писал никогда…
|
|
|
RE: BAT программка - 2009-03-18 15:45:13.130000
|
|
|
AloneMonaX
Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
|
Сорри, я не знаю параметров проги, а возможности проверить нету…хотя…если ты узнаешь и напишешь мне их, то я сделаю=)
|
|
|
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]
|
|
|
RE: BAT программка - 2009-03-19 21:48:30.596666
|
|
|
DanceStyle
Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
|
Скинул ;)
|
|
|
RE: BAT программка - 2009-03-20 14:15:32.876666
|
|
|
AloneMonaX
Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
|
Завтра будет=)
|
|
|
RE: BAT программка - 2009-03-20 19:36:31.023333
|
|
|
DanceStyle
Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
|
Большущее спасибо!!!! :)
|
|
|
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 e -r Разархивирует в текущую папку из всех подкаталогов=) Архивирует в файл "Ahv.arj" Это пoка простейшие команды, у меня были какие то еще, но здесь в инет-клубе нельзя копировать код=) Так что еще дополню в понедельник По памяти примерно:
for %%a in(*.arj) do arj.exe e "%%a"
quote:
Большущее спасибо!!!! :) Спасибо - это не +1=))))
|
|
|
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
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]
|
|
|
RE: BAT программка - 2009-03-21 13:53:42.563333
|
|
|
DanceStyle
Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
|
Не архивирует (( а почему ошибки то ????
|
|
|
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]*.*$" этот код не находит файлов… ( мне нужно чтобы он находил в текущем каталоге…
|
|
|
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, но я только счас это заметил - ночь, усталость, … Поправь так, чтобы искало с буквой Е в расширении.
|
|
|
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.]*$" ничего :(
|
|
|
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 < StrLen(p) - 1)then Writeln(fileName); end; end. Я был уверен что ты парень, а судя по фотке в профиле - девушка. Поэтому все обращения в мужском роде можешь конвертировать на лету (-: я уж переравлять не буду. Хотя я фоткам не верю и возражений на обраения в мужском роде не поступало, поэтому ты можешь быть кем угодно. В общем я больше к этой теме с батниками не возвращаюсь. Все делай самостоятельно.
|
|
|
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
У меня разархивирует Эти команды работают!!!
|
|
|
RE: BAT программка - 2009-03-22 13:52:53.580000
|
|
|
AloneMonaX
Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
|
Ах да… забыл сказать что программа arj.exe(архиватор) должен находится в одном каталоге с BAT программой!
|
|
|
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 < 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 < StrLen(p) - 1)then Writeln(fileName); end; end. Я был уверен что ты парень, а судя по фотке в профиле - девушка. Поэтому все обращения в мужском роде можешь конвертировать на лету (-: я уж переравлять не буду. Хотя я фоткам не верю и возражений на обраения в мужском роде не поступало, поэтому ты можешь быть кем угодно. В общем я больше к этой теме с батниками не возвращаюсь. Все делай самостоятельно. В профиле фотка девушки - ты прав!!! Но род у меня мужской!!! Эта фотка должна была быть на аве… просто на этом форуме зависают не только программисты и хакеры как ты, а еще и обычные пользователи, которые спрашивают помощи… огромный тебе СПС !!! ;)
|
|
|
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
У меня разархивирует Эти команды работают!!! так здесь не достаточно только заархивировать… В случае пропуска имени архива работа должна проводиться со всеми архивами в текущем каталоге.
|
|
|
RE: BAT программка - 2009-03-22 16:24:48.273333
|
|
|
DanceStyle
Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
|
tester, разобрался ))
|
|
|
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 Народ!!!! Очень нужно решение этой задачи !!!!!!!
|
|
|
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 Работает это?
|
|
|
RE: BAT программка - 2009-03-23 17:49:51.990000
|
|
|
DanceStyle
Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
|
неа (
|
|
|
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' архивирует
|
|
|
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" вот так работает… а что делать с этой частью (В случае пропуска имени архива работа должна проводиться со всеми архивами в текущем каталоге.) ????
|
|
|
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' архивирует выдается ошибка….
|
|
|
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 для того чтобы работа производилась со всеми подпапками
|
|
|
RE: BAT программка - 2009-03-30 14:27:58.930000
|
|
|
DanceStyle
Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
|
quote:
ORIGINAL: AloneMonaX параметр -r для того чтобы работа производилась со всеми подпапками ага, спс, то есть задание сделано ? :)
|
|
|
RE: BAT программка - 2009-03-31 15:03:31.030000
|
|
|
AloneMonaX
Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
|
Если работает - да)))
|
|
|
RE: BAT программка - 2009-03-31 21:38:37.780000
|
|
|
DanceStyle
Сообщений: 31
Оценки: 0
Присоединился: 2009-03-05 20:35:28.336666
|
ага)) работает ))) спс!!!!!!!!!!! ;)
|
|
|
|
|