Script para percorrer pastas e copiar um arquivo específico

0

Eu preciso de um script para percorrer a pasta e copiar o nome da pasta e salvá-lo em 'temp'. Em seguida, dentro dessa pasta copie um arquivo específico e cole-o em outra pasta com o nome 'temp.dat'

Por exemplo, leve Nome da pasta “drivers.dat”, extraia “drivers” Em seguida, copie o arquivo "drivers.dat" \ "dat", mova e renomeie para new_dat \ drivers.dat

Obrigado pela ajuda.

Digamos que o caminho seja o caminho de rede L: \ Pastas Particulares. Por aqui 1) Crie uma pasta “new_dat” 2) Percorra as pastas no diretório e: uma. Pegue o nome da pasta, extraia o nome da pasta sem a extensão .dat, salve o nome b. Nessa pasta copie e renomeie o arquivo dat para name_dat.dat c. Copie o novo arquivo dat para a pasta “new_dat”. 3) Repita para cada pasta.dat

Por exemplo, leve “2.5V drivers.dat” nome da pasta, extraia “2.5V drivers” Em seguida, copie o arquivo "2.5V drivers.dat" \ "dat", mova e renomeie para new_dat \ 2.5 V drivers.dat

Acabaremos com uma pasta new_dat contendo todos os arquivos "dat", mas renomeados como "folder name.dat".

    
por David 07.01.2013 / 18:40

1 resposta

0

Aqui está escrito no PowerShell 3.

#Set Location to Folder
Set-Location -Path "C:\Personal Folders"

#Check If The Folder "new_dat" exists, if it doesnt, create it
if(!(Test-Path -Path "new_dat"))
{
    New-Item -Name "new_dat" -ItemType Directory
}

#Get All The Folders Except "new_dat"
$Folders = Get-ChildItem -Directory | Where-Object {$_.Name -ne "new_dat"}

#This Is Where The Magic Happens
foreach($Folder in $Folders)
{
    Get-ChildItem -Path $Folder.FullName -Filter *.dat | Move-Item -Destination  (Join-Path -ChildPath ([System.IO.Path]::GetFileNameWithoutExtension($Folder.Name) + "_dat.dat") -Path "C:\Personal Folders\new_dat" )
}
  • Instale o PowerShell 3
  • Coloque isso em um arquivo de texto e chame-o de Move.ps1
  • Configure uma tarefa agendada para executá-la a cada X horas ou qualquer outra
por 07.01.2013 / 18:46