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

0

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

Obrigado Natalya

    
por Natalya 27.05.2015 / 20:44

2 respostas

0

Minha sugestão é ir ao Ninite.com e baixar a ferramenta freeware chamada "Everything". É uma simples ferramenta de pesquisa do Windows. Após a instalação, dê 5 minutos ou mais para indexar seus arquivos.

No campo de pesquisa, digite seu termo de pesquisa e você terá resultados instantâneos, como acontece no Google. Ao ver os resultados, você pode manipular os arquivos diretamente na janela Pesquisar tudo, como no Windows Explorer. Você pode "selecionar todos" e, em seguida, copiá-los e, em seguida, no Win Explorer, vá para a pasta desejada e cole-os.

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

    
por 27.05.2015 / 21:54
0

Aqui vai você. Faça a corrida a seco primeiro. Leia atentamente os comentários.

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 desejar manter o arquivo, mova-o ou renomeie-o.

Um arquivo de log 'movelog.txt' será criado. Como acima, mova ou renomeie 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 como whatever.ps1 e execute-o no console do PowerShell.

Aproveite

    
por 27.05.2015 / 23:16