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