martes, 15 de octubre de 2013

Ejercicios PowerShell

Ejercicio 3

4- Desarrolla un cmdlet de powershell que defina un array de 10 nombres y los muestre por pantalla con un while, con un for y con un foreach.
# ejemploArrays1.ps1

$nombres = "Bustingorri","Arozarena","Urban","Pepin"
$nombres = $nombres + "Gandalf"

# ahora los hacemos con el for
for ($i = 0; $i -lt $nombres.Length; $i++){
 Write-Output $nombres[$i]
}

# ahora con el foreach
foreach ($jugador in $nombres){
 Write-Output $jugador
}

# ahora con el while
while ($i -lt $nombres.length){
 Write-Output $nombres[$i]
 $i++
}
5- Desarrolla un cmdlet de powershell que defina un array de 10 números inicializados a 0. A continuacíon haz un bucle (for o foreach) que inicialice el array con números enteros aleatorios entre 10 y -10. Debes investigar el cmdlet Get-Random para conseguir esos números. Una vez generado ese array debes hacer otro bucle for que contabilice cuántos números positivos, negativos e iguales a 0 hay en ese array.
# arrayNumeros.ps1
$positivo = 0
$negativo = 0
$cero = 0
$numeros = 0,0,0,0,0,0,0,0,0,0
foreach ($num in $numeros){
 $aleatorio = Get-Random -Maximum 10 -Minimum -10
 $numeros[$num] = $aleatorio
}

for ($i = 0; $i -lt $nombres.Length; $i++){
 if ($numeros[$i] -eq 0){
  $cero++
 }
 else{
  if ($numeros[$i] -lt 0){
   $negativo++
  }
  else{
   $positivo++
  } 
 }
}

Write-Output "Hay $cero ceros."
Write-Output "Hay $negativo negativos."
Write-Output "Hay $positivo positivos."
6- Desarrolla un cmdlet de Powershell que solicite al usuario un nombre de directorio. El cmdlet debe crear ese directorio y meterse en él. Una vez centro el cmdlet debe crear 10 directorios cuyo nombre debe ser un número aleatorio, y dentro de cada uno de ellos debe crear 10 ficheros de texto cuyo nombre debe ser un número aleatorio.
# crearDirectorio.ps1
[string]$cadena = $( Read-Host "Introduce un nombre de directorio para crear: " )
mkdir $cadena
cd $cadena
for ($i = 0; $i -lt 10; $i++){
 $nombreParaCarpeta = Get-Random 1000
 mkdir $nombreParaCarpeta
 cd $nombreParaCarpeta
 for ($j = 0; $j -lt 10; $j++){
  $nombreParaFichero = Get-Random 1000
  echo Hola > "$nombreParaFichero.txt"
 }
 cd..
}
7- Utilizando arrays y números aleatorios, desarrolla un cmdlet de powershell que genere contraseñas. Añádele parámetros para poder indicarle longitud concreta. Modifica el cmdlet 6 para que utilice este cmdlet.
# crearPassword.ps1
$abecedario = 'a','b','c','d','e','f','g','h','i','j','k','l','m','ñ','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','_','?','¿','*','A','B','C','D','E','F','G','H','I','J','K','L','M','Ñ','O','P','Q','R','S','T','U','V','W','X','Y','Z'
$contra = ""
$passwordLength = 20
for ($i = 0; $i -lt $passwordLength; $++){
 $j = Get-Random -Maximum 56 -Minimum 1
 $contra = $contra + $abecedario[$j]
}
Write-Output "Su contraseña es: $contra"
# FIN PROGRAMA
Espero que os haya gustado.
Un saludo.

No hay comentarios:

Publicar un comentario