ProcInf
10-06-2007, 17:56
Здравствуйте...
Возникла такая проблема....
Как обрабатывать большие(по-миоим меркам объемы информации)...
Условия работы:
- поток информации в день ~(30-60)гигов....;кол-во файлов ~(700.000-1.000.000)
- оч. сильно дублирована
- рассредоточена в пределах локалки
- администраторчких прав нет, но хватает и пользовательских(экспериментальный проект)
- основные средства(инструментарий) обработки это (bat-скрипты, хотя можно использовать и решения на ,к примеру, C++)
- обработка происходит в фоновом режиме
Цели:
- Сортировка файлов по заданным критериям...
- Задача упрощается так как анализ фалов не контекстный, а лишь основанный на именах фалйов....
- ...
Уже имеющиеся решения:
- скрипт as.bat сортирует фалы по заранее заданым правилам которые находится в текстовом файле(ext.txt).
Проще говоря сортирует по расширениям, и шаблонам имен файлов...
Исходники ниже...
Проблема в том, что приходится делать для каждого правила новый проход по всем файлам(а их много....)...
Так что хотелось бы узнать как в один проход отсортировать файлы,как пропускать уже отсортированные файлы,как исключать повторяющиеся файлы..
Да и вообще хочется побольше опыта приобрести по данной проблеме.
Заранее спасибо...
========================= СКРИПТ as.bat =========================
rem НАЧАЛО СКРИПТА as.bat
@echo off
cls
echo Start
echo Inicialization of varibles
set fileExtension=ext.txt
set input_folder=autosort_folder
if exist %fileExtension% (
echo Current catalog: & cd
echo You are sure?(y/n)
set /p ask=
if "%ask%"=="y" (
for /F "eol=/ tokens=1,* delims==" %%i in (%fileExtension%) do (
set %%i=%%j
echo Sorting %%i
echo Create output folder...
md %input_folder%\%%i
echo Please waiting...
FOR /r %%f IN (%%j) DO (
move /y "%%f" %input_folder%\%%i
)
)
) else (
echo Operaciya sortirovki otmenena pol`zovatelem
)
) else (
echo Fajl so spiskom rasshirenij ne najden
)
rem КОНЕЦ СКРИПТА as.bat
========================= ФАЙЛ ext.txt =========================
// НАЧАЛО ФАЙЛА ext.txt
// Файл с расширениями для автоматической сортировки файлов
//Временные файлы
tmp_files=*.~*; ~*.*; *.??~; *.---; *.tmp; *._mp; *~tmp.*; *.??$; *.syd; *.shd; *.old; *.bak; *.bac; *.bup; *.chk; t3v?????.*; *.gid; mscreate.dir; chklist.*; 0???????.nch; *.dmp; _istmp*.*; *.obj; *.idb; *.ilk; *.tlb; *.tli; *.tlh; *.tmp; *.ncb; *.rsp; *.pdb; *.pgc; *.pgd; *.pch; BuildLog.htm; *.manifest; *.manifest.res; mt.dep;
//Audio
audio_files=*.aif; *.au; *.cda; *.med; *.mid; *.midi; *.mod; *.mpa; *.mp3; *.ogg; *.ra; *.rmi; *.rmx; *.rv; *.s3m; *.sfx; *.sid; *.snd; *.spc; *.voc; *.vvs; *.wav; *.wma; *.xm;
//Video
video_files=*.asf; *.avi; *.divx; *.mpe*; *.mpg; *.mpg4; *.mov; *.rm; *.vob; *.wmv; *.xvid;
// Mail message files
mail_files=*.eml; *.msg;
// PDF files
pdf_files=*.pdf;
// DJVU files
djvu_files=*.djvu; *.djv;
// URL files
url_files=*.url;
// КОНЕЦ ФАЙЛА ext.txt
Возникла такая проблема....
Как обрабатывать большие(по-миоим меркам объемы информации)...
Условия работы:
- поток информации в день ~(30-60)гигов....;кол-во файлов ~(700.000-1.000.000)
- оч. сильно дублирована
- рассредоточена в пределах локалки
- администраторчких прав нет, но хватает и пользовательских(экспериментальный проект)
- основные средства(инструментарий) обработки это (bat-скрипты, хотя можно использовать и решения на ,к примеру, C++)
- обработка происходит в фоновом режиме
Цели:
- Сортировка файлов по заданным критериям...
- Задача упрощается так как анализ фалов не контекстный, а лишь основанный на именах фалйов....
- ...
Уже имеющиеся решения:
- скрипт as.bat сортирует фалы по заранее заданым правилам которые находится в текстовом файле(ext.txt).
Проще говоря сортирует по расширениям, и шаблонам имен файлов...
Исходники ниже...
Проблема в том, что приходится делать для каждого правила новый проход по всем файлам(а их много....)...
Так что хотелось бы узнать как в один проход отсортировать файлы,как пропускать уже отсортированные файлы,как исключать повторяющиеся файлы..
Да и вообще хочется побольше опыта приобрести по данной проблеме.
Заранее спасибо...
========================= СКРИПТ as.bat =========================
rem НАЧАЛО СКРИПТА as.bat
@echo off
cls
echo Start
echo Inicialization of varibles
set fileExtension=ext.txt
set input_folder=autosort_folder
if exist %fileExtension% (
echo Current catalog: & cd
echo You are sure?(y/n)
set /p ask=
if "%ask%"=="y" (
for /F "eol=/ tokens=1,* delims==" %%i in (%fileExtension%) do (
set %%i=%%j
echo Sorting %%i
echo Create output folder...
md %input_folder%\%%i
echo Please waiting...
FOR /r %%f IN (%%j) DO (
move /y "%%f" %input_folder%\%%i
)
)
) else (
echo Operaciya sortirovki otmenena pol`zovatelem
)
) else (
echo Fajl so spiskom rasshirenij ne najden
)
rem КОНЕЦ СКРИПТА as.bat
========================= ФАЙЛ ext.txt =========================
// НАЧАЛО ФАЙЛА ext.txt
// Файл с расширениями для автоматической сортировки файлов
//Временные файлы
tmp_files=*.~*; ~*.*; *.??~; *.---; *.tmp; *._mp; *~tmp.*; *.??$; *.syd; *.shd; *.old; *.bak; *.bac; *.bup; *.chk; t3v?????.*; *.gid; mscreate.dir; chklist.*; 0???????.nch; *.dmp; _istmp*.*; *.obj; *.idb; *.ilk; *.tlb; *.tli; *.tlh; *.tmp; *.ncb; *.rsp; *.pdb; *.pgc; *.pgd; *.pch; BuildLog.htm; *.manifest; *.manifest.res; mt.dep;
//Audio
audio_files=*.aif; *.au; *.cda; *.med; *.mid; *.midi; *.mod; *.mpa; *.mp3; *.ogg; *.ra; *.rmi; *.rmx; *.rv; *.s3m; *.sfx; *.sid; *.snd; *.spc; *.voc; *.vvs; *.wav; *.wma; *.xm;
//Video
video_files=*.asf; *.avi; *.divx; *.mpe*; *.mpg; *.mpg4; *.mov; *.rm; *.vob; *.wmv; *.xvid;
// Mail message files
mail_files=*.eml; *.msg;
// PDF files
pdf_files=*.pdf;
// DJVU files
djvu_files=*.djvu; *.djv;
// URL files
url_files=*.url;
// КОНЕЦ ФАЙЛА ext.txt