Windows 7 — Как найти список файлов по имени файла и скопировать их в папку

Windows 7 — Как найти список файлов по имени файла и скопировать их в папку

У меня есть список из 200 имен файлов. Мне нужно найти эти файлы, которые находятся в разных подпапках, по их имени и скопировать их в одну отдельную папку. Я использую Windows 7. Как это сделать?

Спасибо, Наталья.

решение1

Я предлагаю зайти на Ninite.com и скачать бесплатный инструмент под названием "Everything". Это простой инструмент поиска Windows. После установки дайте ему около 5 минут, чтобы проиндексировать ваши файлы.

В поле поиска введите ваш поисковый запрос, и вы получите мгновенные результаты, как вы это делаете в Google. Увидев результаты, вы можете управлять файлами непосредственно в окне поиска Everything, например, как вы можете это сделать в проводнике Windows. Вы можете «выбрать все», а затем скопировать их, а затем в проводнике Windows перейти в нужную папку и вставить их.

Everything - действительно хороший инструмент. Вам даже не нужно вводить полное имя файла, только его часть, например, 'eag mp3' вернет все MP3 с 'eag' в имени файла, например, 'eagles - song name.mp3'

решение2

Вот так. Сначала проведите пробный прогон. Внимательно прочитайте комментарии.

Файл fullfilenames.txt сохранится, так что у вас будет запись каждого найденного файла. Если вам нужно запустить это больше одного раза и вы хотите сохранить файл, переместите или переименуйте его.

Будет создан файл журнала 'movelog.txt'. Как и выше, переместите или переименуйте его, если хотите сохранить его после каждого запуска.

# Set your search directory and destination directory
$destdir = "[destination for files]"
$searchdir = "[top dir of search path]"

# Create empty file to contain the full path info for each file
echo $null > fullfilenames.txt
# Create array from your list of filenames
$filenames = Get-Content filenames.txt
# For each file in array of filenames get fullpath and assign var $fullname
foreach ($file in $filenames) {
     $fullname = Get-ChildItem $searchdir | Where-Object {$_.PSIsContainer -eq $False -and ($_.Name) -eq $file} | ForEach-Object {$_.FullName}
     # Add full path of file to fullfilenames.txt
     echo $fullname >> fullfilenames.txt
     # Uncomment next two lines for troubleshooting & dry run
     #echo $file
     #Write-Host $fullname
}

# Create array from new list of files with full path info and then move each file to destination.
# For troubleshooting & dry run, comment out following two lines.
$filenames = Get-Content fullfilenames.txt
echo $null > movelog.txt
foreach ( $file in $filenames ) {
    Move-Item $file $destdir
    # Log success/fail of each move
    echo "$(Get-Date -f o) $? $file" >> movelog.txt
}

Примечание: Это скрипт PowerShell. Сохраните его как anything.ps1 и запустите в консоли PowerShell.

Наслаждаться

решение3

Вы можете выполнить поиск по списку файлов в разделе «Все», разделив их символом |.

Например:file1|file2|file3|file4

Ссылка для скачивания "Всё":https://www.voidtools.com/downloads/

Связанный контент