[identity profile] pilot-kosyakoff.livejournal.com posting in [community profile] useful_faq
есть список файлов которые необходимо найти на компьютере, их около 10 000 
Есть ли какая нибудь программка которой можно было бы скормить этот список, а она в ответ бы выдала файлики которые нашлись?

Спасибо.

Date: 2010-11-14 09:19 am (UTC)
From: [identity profile] aterentiev.livejournal.com
если ограничиться только маской, а не списком, как в посте, и предположив, что файлы имеют разные имена, то копирование делается достаточно просто (bat-file, если нужно просто в командной строке, то двойные %% нужно заменить на одинарные):

for /f "delims=" %%i in ('dir /b /s /o:-d *.tmp') do copy "%%i" d:\target_dir

вариант с удалением старых файлов несколько сложнее, т.к. имхо нет встроенного сравнения дат, но тоже не невозможен, мое решение в виде бат-файла:

@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%i in ('dir /b /s /o:-d *.tmp') do (
   set eudate=%%~ti
   set usdate=!eudate:~6,4!-!eudate:~3,2!-!eudate:~0,2!
   if !usdate! gtr 2008-01-01 del "%%i"
)


из-за того, что на моем компе европейская система записи дат ДД.ММ.ГГГГ, чтобы иметь возможность сравнивать даты я перевел их в американский стандарт ГГГГ-ММ-ДД... не так элегантно, конечно, но скажем так - не смертельно, если знать как

Date: 2010-11-14 04:34 pm (UTC)
From: [identity profile] karpion.livejournal.com
Вот, уже приходится писать программу с циклами, т.е. полноценно программировать. И вообще говоря, конструкции тут весьма неочевидные (хотя возможно, просто сильно непривычные). Собственно, Вы фактически пишете юниксовую find.

Ещё изменю задачу: надо эти файлы запихнуть в архив.

А вот ещё одна интересная задача: есть файлы с именами типа "имя.фамилия", и надо переименовать их в "фамилия_имя".

PS: Только не примите за наезд.

Date: 2010-11-14 05:01 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
да я спокоен, какие тут наезды... :)

дело в то, что конкретно было в исходном вопросе? а была идея, что для решения задачи жизненно необходимы юникс-утилиты и/или их копия-адаптация типа сигвина
я на это сказал, что "все, что возможно в никсах - возможно и в командной строке винды" - пока что я с задачами справляюсь
нужно просто понять всю мощь связки for-find-dir - и можно решать любые задачи
я, например, делал парсер с кросс-поиском по многим csv-файлам с генерацией xml по шаблону, когда не было csv-xslt-парсера

я естественно подтверждаю, что мелкософту в винде все можно было бы сделать проще или по-другому, но нужно уметь использовать и то, что уже есть, по-возможности не тяготея к установке отдельного софта для каждой всплываемой задачи...
командная строка винды тоже не стоит на месте

я вполне могу решить и другие предложенные задачи, там будет все тот же знакомый for, но, пожалуйста, не в качестве экзамена, а только если я этим могу кому-либо помочь :)