Windows 7 - Como localizar uma lista de arquivos por nome de arquivo e copiá-los para uma pasta

Windows 7 - Como localizar uma lista de arquivos por nome de arquivo e copiá-los para uma pasta

Eu tenho uma lista de 200 nomes de arquivos. Preciso encontrar esses arquivos, que estão localizados em subpastas diferentes, pelo nome do arquivo e copiá-los em uma pasta separada. Estou usando o Windows 7. Como faço isso?

Obrigado, Natália

Responder1

Minha sugestão é acessar Ninite.com e baixar a ferramenta freeware chamada "Everything". é uma ferramenta simples de pesquisa do Windows. Após a instalação, aguarde cerca de 5 minutos para indexar seus arquivos.

No campo de pesquisa, digite o termo de pesquisa e você obterá resultados instantâneos, como faz no Google. Ao ver os resultados, você pode manipular os arquivos diretamente na janela de pesquisa Tudo, como no Windows Explorer. Você pode 'selecionar todos' e copiá-los e, no Win Explorer, ir para a pasta desejada e colá-los.

Tudo é uma ferramenta muito boa. Você nem precisa digitar o nome do arquivo inteiro, apenas parte dele, por exemplo, 'eag mp3' retornará todos os MP3s com 'eag' no nome do arquivo, como 'eagles - song name.mp3'

Responder2

Aqui você vai. Faça o teste primeiro. Leia os comentários com atenção.

O arquivo fullfilenames.txt persistirá para que você tenha um registro de cada arquivo encontrado. Se você precisar executar isso mais de uma vez e quiser manter o arquivo, mova-o ou renomeie-o.

Um arquivo de log 'movelog.txt' será criado. Como acima, mova ou renomeie-o se quiser mantê-lo após cada execução.

# 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
}

Nota: Este é um script do PowerShell. Salve-o como qualquer coisa.ps1 e execute-o no console do PowerShell.

Aproveitar

Responder3

Você pode pesquisar uma lista de arquivos em "Tudo" delimitando com |.

Por exemplo:file1|file2|file3|file4

Link para baixar "Tudo":https://www.voidtools.com/downloads/

informação relacionada