Войти

Показать полную графическую версию : Поиск файлов по имени папки и сортировка


Noscripter
22-03-2015, 19:25
добрый день! в скриптовании и программировании не силён, прошу помочь реализовать следующую задачу:
имеем одну директорию с одноуровневым вложением поддиректорий вида E:\files\Novaya Rabota , E:\files\Institut Lessons и т.д, чаще всего всего имена субдиректорий состоят из двусоставных словосочетании. также есть одна большая директория Sources в которой тысячи файлов, также имеющих сходные с вышеуказанными папками, названия, но с некоторыми вариациями вида "institut+lessons ABCDE" , "Novaya_rabota3453", "institut lessons-123" и т.д. нужно чтобы скрипт/программа переместила все файлы в одноимённые директории без учёта расширения и регистра, т.е. скрипту надо сначала взять название первой директории за образец и найти все файлы с вариациями, переместив их в нужную папку.важный момент: при наличии одинаковых файлов в директориях источника и назначения , игнорировать перемещение из источника одноимённого файла, пропустить его для дальнейшей ручной сортировки( если в E:\sources и E:\files есть файл file111.txt , то не перемещать этот файл).
как понимаю, без регулярных выражений здесь не обойтись?
спасибо

Foreigner
23-03-2015, 00:43
PowerShell:

[array] $dirs = get-item 'e:\files'

get-childitem 'e:\files' | where { $_.psiscontainer } | foreach { $dirs += $_ }
foreach ($dir in $dirs) {

$mask = ($dir.name.split() -join '*') + '*'

get-childitem 'e:\sources' $mask | foreach {

move-item -path $_.fullname -dest $dir.fullname -ea 0

}}




© OSzone.net 2001-2012