![]() |
как бы скопировать прямо из потока?
Задача такая. Есть туча файлов в одной директории (много тысяч и каждый день добавляются), они вперемешку, потому что разные названия, но в каждом названии есть дата.
Файлы могут иметь разные даты создания/модификации по сравнению с той датой, что вбита в название каждого из них (это ещё один сюрприз, поэтому не получится просто отсортировать в Проводнике и смотреть в конец списка). Отлавливаю список всех, подгруженных в нужную дату примерно так: Код:
dir /b /o:d|findstr /b /i %DID% |findstr %sdate% Код:
C:\tmp\0>dir /b|findstr 45|copy * c:\ |
Цитата:
Код:
dir /b %DID%*%sdate%* Код:
copy /y %DID%*%sdate%* путь_к_папке |
Примерный код пакетного файла может выглядеть наподобие:
Код:
@echo off |
Iska, интересный код, завтра попробую сделать оба предложения, но у меня сомнения. Как я говорил, раньше пробовал сделать в цикле FOR пайплайн, и это не получалось, если убирал пайплайн -- всё работало. Кажется, что FOR почему-то не осиливает перенаправление вывода команд внутри себя, не знаю почему. Винда 2К, пропатченная от работы (но на cmd это вроде никак не должно влиять).
|
Gennie, потоки точно работают внутри цикла. Вы вероятно просто писали | вместо ^| . Внутри цикла нужно экранировать символ | иначе интерпретатор будет думать, что это просто строка с перенаправлением и ничего работать не будет.
|
О, спасибо большое! Да, я действительно не ставил экранов перед символом |.
То, что нужно, получилось с первого совета (copy с нужными параметрами), но интересно будет попробовать и более сложный вариант, для самообразования. Не успел ещё. |
Время: 06:28. |
Время: 06:28.
© OSzone.net 2001-