SHARE
TWEET

Untitled

a guest Nov 19th, 2019 85 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ########### ENCABEZADO ###########
  2. #
  3. #   Nombre del script: ejercicio1.ps1
  4. #   Trabajo practico: N°2
  5. #   Ejercicio: N°3
  6. #   Integrantes:
  7. #
  8. #       Jason Leonel Linares        39.785.415
  9. #       Agustin Franco Di Maulo     40.936.951
  10. #       Nicolas Martin Cano         39.775.044
  11. #       Fernando Ezequiel Saldaña   38.346.178
  12. #       Carolina Tiziana Vitulli    93.584.701
  13. #
  14. #   Correspondiente a:      Entrega 1
  15. #
  16. #################################
  17.  
  18. <#
  19. .SYNOPSIS
  20.     En base a un archivo CSV con los datos de origen y destino,
  21.     mueva archivos de un directorio a otro y registra en un log con formato CSV la hora en la que se movió cada uno de esos archivos.
  22. .PARAMETER entrada
  23.     Path del archivo CSV de entrada.
  24. .PARAMETER salida
  25.      Path del archivo CSV de salida (log). Incluye nombre del archivo.
  26. .EXAMPLE
  27.     ejercicio3.ps1 -entrada entrada.csv -salida salida.csv
  28. #>
  29.  
  30. Param (
  31.     [Parameter(Position = 1, Mandatory = $true)]
  32.     [String] $entrada,
  33.     [Parameter(Position = 2, Mandatory = $true)]
  34.     [String] $salida
  35. )
  36.  
  37. if (Test-Path "$entrada") {
  38.    
  39.     $salidaPathPre = Resolve-Path -LiteralPath "$salida"
  40.     $salidaPath = Split-Path -Path "$salidaPathPre"
  41.  
  42.     if (Test-Path $salidaPath) {
  43.  
  44.         $csvEntrada = Import-Csv -Path "$entrada"    
  45.         foreach($line in $csvEntrada)
  46.         {
  47.  
  48.             $destino = $line.destino
  49.             $destinoPath = Split-Path -Path $line.destino
  50.             $origen = $line.origen
  51.            
  52.             if(!(Test-Path $destino)){
  53.                 New-Item -Path $destinoPath -ItemType Directory -Force | Out-Null
  54.             }
  55.            
  56.             if((Test-Path $origen)){
  57.                 Move-Item $origen $destinoPath
  58.                 $var = [pscustomobject]@{
  59.                     archivo = [System.IO.Path]::GetFileName($origen)      
  60.                     fecha  = Get-Date -Format "dd/MM/yyyy"      
  61.                 }
  62.    
  63.                 $var | Export-Csv -Path "$salida" -Append
  64.             }else{
  65.                 Write-Host "Hubo un problema al tratar de mover el archivo (" $origen ") a la carpeta destino (" $destino ")"
  66.             }
  67.         }
  68.     }
  69.     else {
  70.         Write-Host "Error en el directorio de salida, revisar existencia y/o permisos."
  71.     }    
  72. }
  73. else {
  74.     Write-Host "Error en el directorio de entrada, revisar existencia y/o permisos."
  75. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top