Como copiar e renomear um arquivo de uma pasta para outra usando o Powershell?

0

Eu quero copiar e renomear um arquivo copiado. A extensão do arquivo é ".ini". Eu tenho várias pastas (bancos) com anos 1985-2007. Cada uma dessas pastas (1985-2007) contém a pasta cfgfiles que contém um arquivo ini que eu quero copiar e colá-lo na pasta Russell - > 1985-2007 - > cfgfiles.

Meu código:

Function RenameMoveFile($oldlocationPath, $newlocationPath, $oldfileName, $newfileName, $Point, $year, $extension)
{

        $old = $oldlocationPath + $oldfileName + "_" + $Point + "_" + $year + $extension
        $new = $newlocationPath + $newfileName + "_" + $Point + "_" + $year + $extension
        copy-Item $old
        Rename-Item $old $new
}
$year = 1985..2007
Foreach ($i in $year)

       {
        RenameMoveFile -oldlocationPath "C:\SNOWPACK\Samarth_Banks\Point1\$i\cfgfiles\" -                             newlocationPath "C:\SNOWPACK\Samarth_Russell\Point1\$i\cfgfiles\" 
-oldfileName "Banks" -newfileName "Russell" -Point "P1" -$year "$i" -extension ".ini"
    }
    
por Sam 13.02.2015 / 01:03

1 resposta

0

Isso só irá recursivamente olhar sua pasta recursivamente na raiz que você digita no código.

Espero que você comece. Eu não entendo os requisitos para o resto da questão, no entanto.

$looking_for = "*.ini" # extension looking for
$path_from = "" # root of search;
$path_to = "" # where to drop found files, wont retain folder heirarchy;
$all_files_in_dir = Get-ChildItem -path $path_from -recurse -Include  
$looking_for | ForEach-Object -Process {$_.FullName};
New-Item -ItemType Directory -Force -Path $path_to # Create dest for you files
Foreach ($i in $year) { ## create your year folders
     $p = Join-Path $path_to $i
     New-Item -ItemType Directory -Force -Path $p
}
foreach( $i in $all_files_in_dir ) {
if ( $i -like $looking_for ) {
     Copy-Item $i $path_to
     if ( $? ) { # was last command succsesful?
          echo "$i copied to $path_to
     }
}
else {
    echo "ERROR: "
    throw $error[0].Exception
         }
     }
}
    
por 13.02.2015 / 05:46

Tags