23
function calcular-letra{
param([int]$DNI)
$letra = "TRWAGMYFPDXBNJZSQVHLCKE"
$indice = $DNI % 23
return $letra[$indice]
function comparacion{
if ($DNIL -ne $final){
Write-Host "La inforamcion no es correcta tu DNI deberia tenre la letra $final"
else {Write-Host "tu DNI es correcto $DNI$final"}
$DNI = Read-Host "Introduce los 8 numeros de tu DNI"
$DNIL = Read-Host "Introduce la letra de tu DNI"
$final = calcular-letra -DNI $DNI
comparacion
24.
Write-Host "Número de parámetros recibidos: $($args.Count)"
foreach ($param in $args) {
Write-Host "Parámetro recibido: $param"
25
function Primo($numero) {
if ($numero -le 1) {
return $false
for ($i = 2; $i -le [math]::Sqrt($numero); $i++) { if ($numero % $i -eq 0) {
return $false
return $true
$num1 = [int](Read-Host "Introduce el primer número")
$num2 = [int](Read-Host "Introduce el segundo número")
$min = [math]::Min($num1, $num2)
$max = [math]::Max($num1, $num2)
Write-Host "Los números primos entre $min y $max son:"
foreach ($numero in $min..$max) {
if (Primo($numero)) { Write-Host $numero
}}
26
$tipo = Read-Host "Ingrese 'DNI' para calcular la letra del DNI o 'CC' para validar la
cuenta corriente"
$numero = Read-Host "Ingrese el número de DNI o cuenta corriente (según lo que
eligió)"
# Función para calcular la letra del DNI
function Calcular-LetraDNI($dniNumero) {
$letras = "TRWAGMYFPDXBNJZSQVHLCKE"
$indice = $dniNumero % 23
return $letras[$indice]
# Función para validar los dígitos de control de la cuenta corriente
function Validar-CC($ccNumero) {
if ($ccNumero.Length -ne 20) {
return $false, "", "", "",""
$entidad = $ccNumero.Substring(0, 4)
$oficina = $ccNumero.Substring(4, 4)
$dc = $ccNumero.Substring(8, 2)
$cuenta = $ccNumero.Substring(10, 10)
function Obtener-DigitoControl ($numero) {
$pesos = @(1, 2, 4, 8, 5, 10, 9, 7, 3, 6)
$suma = 0
for ($i = 0; $i -lt $numero.Length; $i++) {
$suma += [int]$numero[$i] * $pesos[$i]
$resto = $suma % 11
return (11 - $resto) % 10
}
$dc1Esperado = Obtener-DigitoControl "00$entidad$oficina"
$dc2Esperado = Obtener-DigitoControl $cuenta
if ($dc -eq "$dc1Esperado$dc2Esperado") {
return $true, "", "", "", ""
} else {
return $false, $entidad, $oficina, "$dc1Esperado$dc2Esperado", $cuenta
# Ejecución principal
if ($tipo -eq "DNI") {
if ($numero.Length -eq 9) {
$dniNumero = $numero.Substring(0, 8)
$dniLetra = $numero.Substring(8, 1).ToUpper()
$letraCalculada = Calcular-LetraDNI $dniNumero
if ($dniLetra -eq $letraCalculada) {
Write-Host "La letra del DNI es correcta $dniNumero$letraCalculada"
} else {
Write-Host "La letra del DNI es incorrecta. Debería ser: $letraCalculada"
} else {
Write-Host "Formato de DNI incorrecto."
} elseif ($tipo -eq "CC") {
if (Validar-CC $numero) {
Write-Host "El número de cuenta corriente es correcto."
} else {
Write-Host "El número de cuenta corriente es incorrecto deberia ser: $
($validacion[1]) $($validacion[2]) $($validacion[3]) $($validacion[4])"
}
} else {
Write-Host "Parámetro de tipo no válido. Use 'DNI' o 'CC'."
27
$ruta = Read-Host("Introduce una ruta")
if (Test-Path $ruta) {
$archivos = Get-ChildItem $ruta
echo $archivos > ruta.txt
Write-Host "El contenido de la ruta ${ruta} se ha introducido en el archivo ruta.txt"
} else {
Write-Host "La ruta introducida no es correcta"