Script Powershell para copiar o arquivo chamado 'dat' de várias pastas

4

Estou tentando copiar um arquivo chamado 'dat'. Este arquivo não tem extensão. A questão é que sob uma pasta pai 'pessoal' eu tenho 500 pastas e todas essas 500 pastas têm o arquivo 'dat'. Estou interessado em copiar todos esses arquivos 'dat' e colocá-los no meu diretório de destino.

Então, quando eu colar esses arquivos 'dat' no meu diretório de destino, espero nomeá-los da seguinte maneira:

"Folder_they_were_residing_in.dat"

Assim, todos os arquivos dat serão renomeados para o folder_name em que estavam residindo com o extension'dat '.

Isso é possível?

    
por David 08.01.2013 / 18:33

2 respostas

5

Configure $source e $dest conforme necessário, incluindo barra final.

$source = "H:\personal\"
$dest   = "H:\archive\"

Get-ChildItem -Recurse -Path $source |
    Where-Object { $_.PsIsContainer -eq $false -and $_.Name -eq "dat" } |
        ForEach-Object { $_.CopyTo( $( $dest + $_.Directory.Name + ".dat" ), $true ) }
    
por 08.01.2013 / 19:07
2
PS H:\> foreach($_ in Get-ChildItem dat -Recurse) { Copy-Item $_.Fullname H:\dest\$($_.Directory.ToString().Split("\")[-1])'.dat }
    
por 08.01.2013 / 19:05