Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <#
  2. .SYNOPSIS
  3.     Este script realiza las siguientes dos acciones cada terminado tiempo:
  4.     • Informar la cantidad de procesos que se encuentran corriendo en ese momento.
  5.     • Indicar el tamaño de un directorio.
  6. .DESCRIPTION
  7.     El script puede recibir los siguientes parámetros:
  8.     • -Procesos: Parámetro que indica que se mostrará la cantidad de procesos corriendo al momento de ejecutar el script.
  9.     • -Peso: Parámetro que indica que se mostrará el peso de un directorio.
  10.     • -Directorio: Solo se puede usar si se pasó “-Peso”. Indica el directorio a evaluar.
  11. .PARAMETER proceso
  12.     Indica que el modo a trabajar es el modo de procesos.
  13. .PARAMETER peso
  14.     Indica que el modo a trabajar es el modo de peso.
  15. .PARAMETER directorio
  16.     Solo válido para el modo peso. Indica el directorio a mostrar información sobre su tamaño.
  17. .EXAMPLE
  18.     Para obtener información sobre los procesos:
  19.     C:\PS> ejercicio5.ps1 -procesos
  20. .EXAMPLE
  21.     Para obtener información sobre el tamaño de un directorio:
  22.     C:\PS> ejercicio5.ps1 -peso -directorio <ruta>
  23. #>
  24.  
  25. Param (
  26.     [Parameter(ParameterSetName="Procesos")]
  27.     [Switch] $procesos,
  28.     [Parameter(ParameterSetName="Peso")]
  29.     [Switch] $peso,
  30.     [Parameter(ParameterSetName="Peso", Mandatory=$true)]
  31.     [String] $directorio
  32. )
  33.  
  34. function ChequearDir([String] $dir) {
  35.     if (!(Test-Path $dir)) {
  36.         ErrorDir $dir
  37.         return $false
  38.     } else {
  39.         return $true
  40.     }
  41. }
  42.  
  43. function ErrorDir([String] $dir) {
  44.     Write-Host "Error, el directorio: $dir, no se existe o no puede ser leido."
  45. }
  46.  
  47. function informarProcesos() {
  48.     while ($true) {
  49.         $cant = (Get-Service | Where-Object Status -eq "Running").Count
  50.         Write-Host $cant
  51.         Start-Sleep -s 10
  52.     }
  53.  
  54. }
  55.  
  56. function informarPeso([String] $directorio) {
  57.     if (ChequearDir($directorio)) {
  58.         while ($true) {
  59.             $cant = Get-ChildItem -path $directorio | Measure-Object -Sum Length | Select-Object Sum
  60.             Write-Host $cant.Sum
  61.             Start-Sleep -s 10
  62.         }
  63.     }
  64. }
  65.  
  66.  
  67. if ($procesos) {
  68.     informarProcesos
  69. } elseif($peso) {
  70.     informarPeso($directorio)
  71. }
  72. else {
  73.     Write-Host "No se especifico ninguna accion."
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement