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

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

2 ответа2

0

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

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

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

0

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

Файл 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. Сохраните его как what.ps1 и запустите в консоли PowerShell.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .