Buscar este blog

lunes, 14 de octubre de 2013

3. Ejericicios PowerShell

3. Ejericicios PowerShell

1.

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.
#Array que muestre 10 nombres con un for, un foreach y un while

 
  
 $nombre= "Carlos","Mikel","Ion","Marta","Ana","Juan","Fermin","Amaya","Sandra","JJ"

Write-Output "Mostrar un array de tres maneras diferentes"

Write-Output "Con un FOR"
Write-Output "-----------------"

for($i=0;$i -lt $nombre.Length;$i++)


 
{
  Write-Output $nombre[$i]

 
}
 Write-Output "Con un FOREACH"
Write-Output "-----------------"

foreach ($i in $nombre)


 
{
  Write-Output $i

 
}
 Write-Output "Con un While"
Write-Output "-----------------"

$n=0
while ($n -lt $nombre.Length)


 
{
  Write-Output $nombre[$n]
$n=$n+1

 
} 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.

# Array de 10 numeros aleatorios entre 10 y -10

$numeros=0,0,0,0,0,0,0,0,0,0

foreach($n in $numeros){

$numeros[$n]= Get-Random 10 -Minimum -10
Write-Output $numeros[$n]

 
}  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 numeros positivos,
negativos e iguales a 0 hay en ese array.

# Array de 10 numeros aleatorios entre 10 y -10

$numeros=0,0,0,0,0,0,0,0,0,0
$pos=0
$neg=0
$igu=0


 
 
#generar numeros aleatorios entre 10 y -10
  foreach($n in $numeros){

$numeros[$n]= Get-Random 10 -Minimum -10

Write-Output $numeros[$n]
  if ($numeros[$n]-ge 0 -and $numeros[$n]-eq 0){
$pos=$pos+1
}
  if ($numeros[$n]-lt 0){
$neg=$neg+1
}
  if ($numeros[$n]-eq 0){
$igu=$igu+1
} 
}
 Write-Output "Han salido $pos numeros positivos"
Write-Output "Han salido $neg numeros negativos"
Write-Output "Han salido $igu numeros ceros"


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.

#Introducir un nuevo directorio, crear 10 dentro de este con nombres que sean numeros aleatorios.
#Dentro de cada nuevo directorio crear 10 ficheros de texto.
#Miguel Revuelta

$i=0
#while existe el directorio

while ($i -eq 0)
{
    Write-Output "Introduce el nuevo directorio"
    $direc= Read-Host
    if (Test-Path $direc)
    {
        Write-Output "El directorio ya existe."
    }
    else { $i=1 }
}


New-Item -Name $direc -ItemType directory
cd $direc
# crear los directorios y los ficheros dentro de cada directorio
for ($n=0;$n -lt 10;$n++)
{
    $direc1=Get-Random 400
    New-Item -Name $direc1 -ItemType directory
    Write-Output "--------------------------"
    Write-Output $direc1
    Write-Output "--------------------------"
    cd $direc1
    for ($h=0;$H -lt 10;$h++)
    {
        $fich=Get-Random 400
        New-Item -Name $fich".txt" -ItemType file
    }
    #Mostrar los ficheros TXT dentro de cada directorio
    dir
    cd..
}
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.

#Introducir un nuevo directorio, crear 10 dentro de este con nombres que sean numeros aleatorios.
#Dentro de cada nuevo directorio crear 10 ficheros de texto, con nombres que contengan numeros y letras.
#Miguel Revuelta


#Como no he encotrado un comando que me calcule un caracter pasandole un numero (codigo ASCII)
#Creo un array con caracteres.

$caracteres="a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","0","1","2","3","4","5","6","7","8","9"

$i=0
#while existe el directorio

while ($i -eq 0)
{
    Write-Output "Introduce el nuevo directorio"
    $direc= Read-Host
    if (Test-Path $direc)
    {
        Write-Output "El directorio ya existe."
    }
    else { $i=1 }
}


New-Item -Name $direc -ItemType directory
cd $direc
# crear los directorios y los ficheros dentro de cada directorio
for ($n=0;$n -lt 10;$n++)
{
    $direc1=Get-Random 400
    New-Item -Name $direc1 -ItemType directory
    Write-Output "--------------------------"
    Write-Output $direc1
    Write-Output "--------------------------"
    cd $direc1
 
    # creaos los 10 ficheros y les pondemos un nombre aleatorio de 6 caracteres
    for ($h=0;$h -lt 10;$h++)
    {
        [string]$nombre=""
        for($i=0;$i -lt 7;$i++)
        {
            $s= Get-Random $caracteres.Length
            #Write-Output $caracteres[$s]
            [string] $nombre=$nombre+$caracteres[$s]
        }
        New-Item -Name $nombre".txt" -ItemType file


    }
    #Mostrar los ficheros TXT dentro de cada directorio
    dir
    cd..
}
cd..

2. Ejericicios PowerShell

2. Ejericicios PowerShell



2.Crea un cmdlet de powershell que espere tres parámetros un llamado $primero que espere un [int], otro llamado $segundo que espere un String que si no se introduce debe solicitarlo al usuario. Una vez hecho el programa debe hacer un bucle for que muestre el valor de $segundo tantas veces como indique $primero.


# Miguel Revuelta


 
 
param (
[int] $primero=10,
[string] $dato="Hola Mundo"


)
 
write-host "Has metido los datos: $primero y $dato"

for ($n=0;$n -lt $primero; $n++)



{
 
Write-Host "$dato"


}



3.Crea un cmdlet de powershell llamado Get-España.ps1 con parámetros que permita indicar los puestos de un equipo de fútbol y luego los muestre. Algo así:
Get-España.ps1 -portero 'Casillas' -defensa 'Sergio Rambo' -pivote 'Busquets' -medio 'Javier Alonso' -delantero 'Erroberto Gudari'
Alineación de España:
Portero: Casillas
Defensa: Sergio Rambo
Busquets: Busquets
Centro: Javier Alonso
Punta: Erroberto Gudari



param (
[string] $seleccion="",
[string] $portero="",
[string] $defensa="",
[string] $pibote="",
[string] $medio="",
[string] $delantero="",
[string] $entrenador=""


)
 
Write-Host "Alineacion seleccion $seleccion"
Write-Host "Portero $portero"
Write-Host "Defensa $defensa"
Write-Host "pibote $pibote"
Write-Host "Medio $medio"
Write-Host "delantero $delantero"
Write-Host "entrenador $entrenador"


4.- Crea un cmdlet de powershell que muestre un menú al usuario con cuatro operaciones disponibles: crear directorio, eliminar directorio, mostrar directorio y salir.
Una vez elegida una opción correcta el programa debe solicitar un nombre de directorio y hacer la operación seleccionada.
Operaciones:
Crear: New-Item -Name Carpeta -ItemType folder
Borrar: Remove-Item Carpeta
Dir: Get-ChildItem Carpeta


# Crea un cmdlet de powershell que muestre un menú para directorios
$Salir=0

while ($salir -eq "0")



{
write-output "Menu"
Write-Output "---------------------------------"
Write-Output "1 Crear directorio"
Write-Output "2 Borrar Directorio"
Write-Output "3 listar directorio"
Write-Output "4 Salir"
Write-Output "Introduce una de las opciones: "
$menu= Read-Host
$sal="0"

switch ($menu) {
1 { Write-Output "Crear directorio"
while ($sal -eq "0")



{
Write-Output "Introducir el directorio donde queremos crear"
$directorio= Read-Host
if (Test-Path $directorio)



{
Write-Output "El directorio existe"


}
else


{
New-Item -Name $directorio -ItemType directory
$sal="1"


}

}



}
2 { Write-Output "Borrar Directorio"
while ($sal -eq "0")



{
Write-Output "Introducir el directorio donde queremos borrar"
$directorio= Read-Host
if (Test-Path $directorio)

{
Remove-Item $directorio
$sal="1"

}
else

{
Write-Output "El directorio no existe"                    
}

}            

}
3 { Write-Output "listar directorio"
while ($sal -eq "0")
{
Write-Output "Introducir el directorio donde queremos Listar"
$directorio= Read-Host
if (Test-Path $directorio)

{
dir $directorio
$sal="1"

}
else

{
Write-Output "El directorio no existe"                    

}

}
    }
4 { Write-Output "Gracias por usar este programa"
$Salir=1

}

}

}