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

No hay comentarios:

Publicar un comentario