0% encontró este documento útil (0 votos)
44 vistas13 páginas

Scripts de PowerShell para diversas funciones

Este documento contiene varios scripts de PowerShell con diferentes funciones como: sumar números, calcular IMC, comprimir archivos, realizar bucles, comprobar conexiones y más. Los scripts ilustran el uso de funciones, parámetros, condicionales, bucles y otros conceptos básicos de PowerShell.

Cargado por

dghfhgfhf fghfhf
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
44 vistas13 páginas

Scripts de PowerShell para diversas funciones

Este documento contiene varios scripts de PowerShell con diferentes funciones como: sumar números, calcular IMC, comprimir archivos, realizar bucles, comprobar conexiones y más. Los scripts ilustran el uso de funciones, parámetros, condicionales, bucles y otros conceptos básicos de PowerShell.

Cargado por

dghfhgfhf fghfhf
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Array1.

ps1

$num= 4,5,6,7
$nom= "perro","gato","jackie","charles"

Function Sumatorio([double]$numeros) {

$total=0
foreach ($numero in $numeros) {
$total += $numero
}

$total=0
foreach ($numero in $num){
$total+=$numero

Write-Host "el total es " $total

Write-Host "Vamos a saludar" $[Link] "personas"

foreach ($nombre in $nom){

if ($nombre -match "^c.*") {

Write-Host "Hola $nombre!"

}
}

Write-Host "El segundo elemento del array es" $nombres[1]

Calculoconmodo.ps1

Import-Module -DisableNameChecking .\Trigonometria.psm1

Get-Hipotenusa 12 34

Comandos.ps1

<#
.SYNOPSIS
BREVE DESCRIPCIÓN DE LO QUE HACE NUESTRO SCRIPT.
.DESCRIPCIÓN
DESCRIPCIÓN DEL USPO DEL SCRUIPT.
.NOTES
AUTOR: EL DIEGASO.
#>
echo "no hago mucho"

Comentarioyfecha.ps1

#COMENTARIOS SIMPLE
Get-Date
#COMENTARIO MULTILINEA
<#
COMENTARIO MULTILINEA O DE BLOQUE
#>
(Get-WmiObject win32_operatingsystem).caption

Compressor.ps1

<#
.SYNOPSIS
Script para comprimir un fichero o una carpeta de archivos con varias opciones.
.DESCRIPTION
-Show || Abre un fichero dentro del comprimido.
-Add || Añade el fichero al comprimido.
-Remove || Eliminar el fichero del comprimido.
-Extract || Extrae el fichero del comprimido a la carpeta.
-ExtractAll || Extraer todos los ficheros del comprimido a la carpeta.
#>

param(
[Parameter()][string]$param1, #comprimido
[Parameter()][string]$param2, #fichero
[Parameter()][string]$target,
[Parameter()][switch]$show,
[Parameter()][switch]$add,
[Parameter()][switch]$remove,
[Parameter()][switch]$extract,
[Parameter()][switch]$extractall

function menu {
Write-Host “================ $ Compressor ================ ”

Write-Host "1: -Show: Abrir fichero dentro del comprimido.”


Write-Host “2: -Add: Añadir el fichero al comprimido”
Write-Host “3: -Remove: Eliminar el fichero del comprimido.”
Write-Host “4: -Extract: Extraer el fichero del comprimido a la carpeta.”
Write-Host “5: -ExtractAll: Extraer todos los ficheros del comprimido a la carpeta.”
Write-Host “6: Presione ‘6’ para salir.”

$opcion = Read-Host "Elige una opción: "


switch($opcion){
1{

$param2= Read-Host -p "Elija un fichero para mostrarlo: "


& show
Write-Host "el fichero es $param2 y el comprimido $param1"
}
2{

$param2=Read-Host -p "Especifica el nombre del fichero: "


& add
}
3{
$param2=Read-Host -p "Especifica el nombre del fichero: "
& remove
}
4{
$param2=Read-Host -p "Especifica el nombre del fichero: "
extract
}
5{
$param2=Read-Host -p "Especifica el nombre del fichero: "
extractall
}
6{
exit
}
default {
Write-Host -ForegroundColor DarkRed "No has seleccionado ninguna opción."
exit
}
}
}

function show {
$destino=$ENV:TEMP
& "C:\Program Files\7-Zip\7z" "e" "-y" "-o$destino" "$param1" "$param2" | Out-Null
start-process "$destino\$param2" -wait
Write-Host "Fichero extraído en: " $destino
Remove-Item $destino\$param2 -Recurse -ErrorAction SilentlyContinue

}
function add {
Write-Host "Debes especificar primero el comprimido y luego el fichero"
& "C:\Program Files\7-Zip\7z" "a" "-y" "$param2" "$param1" | Out-Null
Write-Host "El comprimido $param1 ha añadido al fichero $param2"
}
function remove {
Write-Host "Debes especificar primero el comprimido y luego el fichero"
& "C:\Program Files\7-Zip\7z" "d" "$param2" "$param1" | Out-Null
Write-Host "El comprimido $param1 ha eliminado al fichero $param2"
}
function extract {

Write-Host "Debes especificar primero el comprimido y luego el fichero"


& "C:\Program Files\7-Zip\7z" "e" "-o$target" "$param2" "$param1" | Out-Null
Write-Host "El comprimido $param1 ha extraido del fichero $param2 al directorio $target"
}
function extractall {

Write-Host "Debes especificar el comprimido al final"


& "C:\Program Files\7-Zip\7z" "e" "-o$target" "$param1" | Out-Null
Write-Host "El comprimido $param1 ha extraido todo al directorio $target"
}

if ($show) {
show
}
elseif ($add) {
add
}
elseif ($remove) {
remove
}
elseif ($extract) {
extract
}
elseif ($extractall) {
extractall
}
else {
menu
}
## ruta 7zip
##
## Comando para comprimir

Educado.ps1

#implementar una funcion que reciba la hora por parámetro


function saludar([int]$hora, [varchar]$nombre) {

if ($hora -ge 6 -and $hora -le 12 ) {


Write-Host "malos días " $nombre
elif ($hora -ge 12 -and $hora -le 18) {
Write-Host "levantate gandúl"
elif ($hora -ge 18 -and $hora -le 23 ) {
Write-Host "vete a acostarte " $nombre
else {
Write-Host "saludos " $nombre
}
}
}
}
}

expresionesregulares.ps1

$ofimatica = "word", "excel","powerpoint","access"


if ("writer" -in $ofimatica){
Write-Host "Está"
}
else {
Write-Host "no está"
}

Write-Host "Powerpoint ocupa la posición " $[Link]("powerpoint")

Write-Host "[Link] fecha y hora"


Write-Host "[Link] usuarios"
$opcion=[INT](Read-Host -Prompt "Elige una opcion")

switch ($opcion) {
{$_ -in "a", "A"}{
Get-Date
}
{$_ -in "b","B"} {
Get-LocalUser
break
}
default {
Write-Host -ForegroundColor Red "Opción incorrecta"
}
}
Funciones.ps1

#function sumar([int]$x, [int]$y) {


# $resultado= $x + $y
# return $resultado
#}

#$s = sumar 4 6

#Write-host $s
param(
[int]$peso = 80,
[int]$altura = 176
)

function imc([int]$altura, [int]$peso) {


$altura = $altura / 100.0 #Convertir de cm a M
return $peso / [math]::pow($altura, 2) #imc= peso / altura ^2

$imc = imc $altura $peso


write-host "IMC: $imc"

IMC.ps1

<#
.DESCRIPTION
Calcular el indice de masa corporal
imc=peso/(altura^2) altura en metros
.EXAMPLE
.\IMC.ps1
¿Preguntar por el peso? 80
¿Altura? (cm) 178
Tu IMC es x
[Bajo peso, Normal, Sobrepeso]
#>

Param (
[FLOAT] $peso,
[FLOAT] $altura
)
if ($peso -eq 0) {
$peso=[float](read-Host -Prompt "¿Cuál es tu peso? (KG)")
}
if ($altura -eq 0) {
$altura=[float](read-Host -Prompt "¿Cuál es tu altura?(CM)")
}

$altura=$altura / 100
$IMC=$peso / ($altura*$altura)
Write-Host "tu imc es $resultado"

if ( $IMC -lt 18.5 ) {


write-host "Bajo Peso"
}
elseif ( $IMC -ge 18.5 -and $IMC -lt 25) {
write-host "Estás normal"
}
elseif ( $IMC -ge 25 -and $IMC -lt 30) {
write-host "Tienes sobrepeso"
}
elseif ( $IMC -ge 30) {
write-host "Estás obeso"
}

Rango.ps1

PARAM(
[Parameter(Mandatory=$true)][INT]$1,
[Parameter(Mandatory=$true)][INT]$2
)

for($1; $1 -le $2; $1++){


Write-Host $1
}

textomultilinea.ps1

$titulo = "Hola"
$texto = @"
<html>
<head>
<title>$titulo</title>
</head>
<body>
<h1>PRUEBA</h1>
</body>
</html>
"@

trigonometría.ps1

Function Cuadrado([double] $numero) {


return [math]::pow($numero, 2)

Function calcular-areaRectangulo([double] $ancho, [double] $alto) {


return $ancho * $alto

Function Hipotenusa([double] $cateto1, [double] $cateto2) {


return [math]::Sqrt($(Cuadrado($cateto1)) + (Cuadrado($cateto2)))

Export-ModuleMember -Function Get-calcular-areaRectangulo,Get-Hipotenusa


VariablesPowershell.ps1

#EN BASH ES ASÍ


#read -p "¿Cómo te llamas?"
$nombre = Read-Host -Prompt "¿Cómo te llamas?"

#variables
#bash
#fecha=$(date)
#powershell
$fecha = $(Get-Date)

write-host "hola $nombre"


write-host "Cómo estás”

adivinar.ps1

$numeroaleatorio=Get-Random (1..100)
$intento=1

While ($a -ne $numeroaleatorio) {

$a=Read-Host "Escribe un número entre 1 y 100"

if ($a -eq $numeroaleatorio) {


Write-Host "FELICIDADES"
}
elseif ($a -le $numeroaleatorio) {
Write-Host "El número $a es menor al generado"
$intento++
}
elseif ($a -ge $numeroaleatorio) {
Write-Host "El número $a es mayor al generado"
$intento++
}
}

Write-Host "Número de intentos="$intento

bucle.ps1

$a=1

while ($a -le 100){


Write-Host $a
$a++ #$a=$a+1
}
bucle1-100.ps1

for ($a=0; $a -le 100; $a++) {


write-host $a
}

comparar3numeros.ps1

Param (
[Parameter(Mandatory=$true)][Float] $operando1,
[Parameter(Mandatory=$true)][Float] $operando2,
[Parameter(Mandatory=$true)][Float] $operando3
)
if ($operando1 -eq $operando2) {
Write-Host "El $operando1 es igual que $operando2"
}
if ($operando1 -eq $operando3) {
write-host "El $operando3 es igual que $operando1"
}
if ($operando2 -eq $operando1) {
write-host "El $operando2 es igual que $operando1"
}
if ($operando2 -eq $operando1) {
write-host "El $operando2 es igual que $operando1"
}

comprobacionconexion.ps1

$ip="[Link]"

do {
Write-Host -NoNewline "Comprobando conexión a $ip..."
$test = Test-Connection -ComputerName $ip -Count 1 -ErrorAction SilentlyContinue
if ($test -eq $null){
Write-Host "[ERROR]"
} else {
Write-Host "[OK]"
}

} while($test -eq $null) #lo mismo es } until ($test -ne $null)

comprobared.ps1

<#
Comprobar a partir de una IP de red que PC´s están encendidos.
192.168.1 (Parámetro de tipo string obligatorio)
salida:
[Link]....[ENCENDIDO]
[Link]....[ENCENDIDO]
Comando Test-Connection
#>
Param(
[Parameter(Mandatory=$true)]$ip = "192.168.1."

for ($a = 1; $a -le 254; $a++) {


Write-Host -NoNewline "Comprobando conexión a $ip$a..."
$test = Test-Connection -ComputerName $ip$a -Count 1 -ErrorAction SilentlyContinue
if ($test -eq $null) {
Write-Host "[APAGADO]"
} else {
Write-Error "[ENCENDIDO]"
}
}

especiales.ps1

Write-Host $args[0] #echo $1


Write-Host $args[1] #echo $2
Write-Host $[Link] #echo $# numero de parametros

Write-Host "soy un objeto string".Length

foreach.ps1

<#
#>

$ficheros = Get-ChildItem

foreach ($f in $ficheros) {


Write-Host "el fichero" $[Link] "fue modificado el dia" $[Link] "y está en el
directorio" $[Link]

limitado.ps1

param(
[ValidateSet("word","excel","powerpoint")][string] $herramienta

)
Write-Host "La herramienta seleccionada es $herramienta"

listausuarioshtml.ps1

$usuarios = Get-LocalUser

$html = $env:TEMP + "\[Link]"


$listado=""
foreach ($usuario in $usuarios ) {
$listado=@"
$listado
$usuario</br>
"@
}

@"
<html>
<head>
<title>USUARIOS</title>
</head>
<body>
$listado
</body>
</html>
"@ > $html

$texto > [Link]


invoke-item [Link]

menu-tres.ps1

function menu{

Write-Host "1: Presione ‘1’ para esta opción.”


Write-Host “2: Presione ‘2’ para esta opción”.
Write-Host “3: Presione ‘3’ para esta opción”.
Write-Host “Q: Presione ‘Q’ para salir”.
}
Write-host "Elige una opción: "
while ($opción -ne 0){

0.\numero-mayor.ps1
1.\sumar-dos.ps1
2.\
}

mostrarcontenido.ps1

param(
[Parameter(Mandatory=$true)][String] $fichero
)
$contenido = Get-Content $fichero
$numero = 0
while ($numero -lt $[Link]) {
Write-Host ($numero + 1) " : " $contenido[$numero]
$numero++
}
multiplicardos.ps1

#Sumar dos valores por param


Param (
[Parameter(Mandatory=$true)][Float] $operando1,
[Parameter(Mandatory=$true)][Float] $operando2
)

$resultado=$operando1 * $operando2
Write-Host "El resultado de sumar $operando1 y $operando2 es $resultado"

pasosdeparametros.ps1

param(
[string] $primerparametro,
[string] $segundoparametro = "valor por defecto",
[switch] $tercero,
[bool] $cuarto,
[int] $quinto,
[float] $sexo
)

write-host $primerparametro=$primero
Write-Host $segundoparametro=$segundo
Write-Host $tercero=$tercero
Write-Host $cuarto=$cuarto
Write-Host $quinto=$quinto

sumardos.ps1

#Sumar dos valores por param


Param (
[Parameter(Mandatory=$true)][Float] $operando1,
[Parameter(Mandatory=$true)][Float] $operando2
)

$resultado=$operando1 + $operando2
Write-Host "El resultado de sumar $operando1 y $operando2 es $resultado"

usuariossistema.ps1

Param(
[string] $username
)
if ($username -eq "") {
$username=Read-Host -Prompt "Introduce el nombre del usuario"
}
$user=Get-LocalUser $username -ErrorAction SilentlyContinue
if ($user) {
Write-Host "Nombre del usuario: " $[Link]
Write-Host "SID :" $[Link]
Write-Host "Nombre completo : " $[Link]
Write-Host "Último inicio de sesión: " $[Link]
} else {
Write-Host -ForegroundColor Red "El usuario" $username "no existe"
}

yosoy.ps1

$a=(Get-LocalUser $env:USERNAME)
Write-Host $env:Username

También podría gustarte