VMware no arranca: soluciona el error de Device/Credential Guard paso a paso
Guía para principiantes: revisa versiones, actualiza VMware y diagnostica el conflicto con Hyper-V. Incluye una alternativa reversible y sus efectos sobre la seguridad.
Tutorial completo para resolver el ejercicio Mision Imposible en Batch (.bat): pedir nombre, crear carpeta, generar doc1.log-doc5.log y renombrar a .txt, con version mejorada y equivalencias en Bash y PowerShell.

Actualizado: 26 de febrero de 2026.
Este tutorial esta pensado para que un alumno de 1 de ASIR pueda resolver el ejercicio sin perderse, incluso si es la primera vez que toca scripts.
Objetivo final del ejercicio: pedir un nombre, crear una carpeta con ese nombre, generar
doc1.logadoc5.log, y renombrar todo a.txtde una sola vez.
.bat.Bloc de notas y a Símbolo del sistema (CMD)..bat desde cero.set /p.El ejercicio te pide un script que haga exactamente esto:
doc1.log, doc2.log, doc3.log, doc4.log, doc5.log..log a .txt en un solo comando.Contrato funcional esperado:
doc1.txt a doc5.txt.Esta es la solucion minima clasica, fiel al enunciado:
@echo off
echo ==========================
echo LA MISION IMPOSIBLE :)
echo ==========================
REM 1) Preguntar nombre
set /p nombre=Escribe tu nombre y pulsa Enter:
REM 2) Crear carpeta con ese nombre
mkdir "%nombre%"
REM 3) Entrar en la carpeta
cd "%nombre%"
REM 4) Crear 5 archivos vacios doc1.log ... doc5.log
type nul > doc1.log
type nul > doc2.log
type nul > doc3.log
type nul > doc4.log
type nul > doc5.log
REM 5) Cambiar extension .log a .txt de un golpe
ren *.log *.txt
echo.
echo Listo! Se creo la carpeta y los archivos.
pause
Resultado esperado (ejemplo):
LA MISION IMPOSIBLE :)
Escribe tu nombre y pulsa Enter: Carlos
Listo! Se creo la carpeta y los archivos.
Presione una tecla para continuar . . .
@echo off: evita que se impriman todos los comandos en pantalla.set /p nombre=...: muestra un texto y guarda lo que escriba el usuario en la variable nombre.mkdir "%nombre%": crea una carpeta. Las comillas permiten nombres con espacios (Ana Maria).cd "%nombre%": entra en la carpeta que acabas de crear.type nul > doc1.log: crea un archivo vacio.doc5.log.ren *.log *.txt: renombra todos los archivos .log a .txt en bloque.pause: deja la ventana abierta para ver el resultado.Que significa *.log:
* = “cualquier nombre”..log = “que termine en .log”.La siguiente version mantiene el ejercicio original, pero evita errores comunes:
Este es el contenido recomendado para mision.bat (el archivo real de esta carpeta):
@echo off
setlocal EnableExtensions
echo ==========================
echo LA MISION IMPOSIBLE :)
echo ==========================
echo.
:pedir_nombre
set "nombre="
set /p "nombre=Escribe tu nombre y pulsa Enter: "
if "%nombre%"=="" (
echo [ERROR] Debes escribir un nombre.
echo.
goto pedir_nombre
)
if exist "%nombre%\\" (
echo [ERROR] Ya existe la carpeta "%nombre%".
echo Escribe otro nombre para no mezclar archivos.
echo.
goto pedir_nombre
)
mkdir "%nombre%" || (
echo [ERROR] No se pudo crear la carpeta.
pause
exit /b 1
)
cd /d "%nombre%" || (
echo [ERROR] No se pudo entrar en la carpeta.
pause
exit /b 1
)
for /L %%i in (1,1,5) do (
type nul > "doc%%i.log"
)
ren *.log *.txt 2>nul
if exist "doc5.txt" (
echo.
echo OK: se crearon y renombraron los 5 archivos.
) else (
echo [ERROR] No se pudo completar el renombrado.
pause
exit /b 1
)
echo.
echo Archivos finales:
dir /b
echo.
pause
exit /b 0
Salida esperada de la version mejorada (ejemplo):
==========================
LA MISION IMPOSIBLE :)
==========================
Escribe tu nombre y pulsa Enter: Ana Maria
OK: se crearon y renombraron los 5 archivos.
Archivos finales:
doc1.txt
doc2.txt
doc3.txt
doc4.txt
doc5.txt
Bloc de notas.mision.bat.Todos los archivos.mision.bat.txt.CMD en esa carpeta.mision.bat
Comprobacion manual:
Carlos).doc1.txtdoc2.txtdoc3.txtdoc4.txtdoc5.txtComandos utiles de comprobacion en Windows:
cd Carlos
dir /b
En esta carpeta tambien tienes las versiones listas:
mision.sh)#!/usr/bin/env bash
set -euo pipefail
echo "=========================="
echo "LA MISION IMPOSIBLE :)"
echo "=========================="
echo
while true; do
read -r -p "Escribe tu nombre y pulsa Enter: " nombre
if [[ -z "${nombre// }" ]]; then
echo "[ERROR] Debes escribir un nombre."
echo
continue
fi
if [[ -e "$nombre" ]]; then
echo "[ERROR] Ya existe '$nombre'. Usa otro nombre."
echo
continue
fi
break
done
mkdir -- "$nombre"
cd -- "$nombre"
for i in {1..5}; do
: > "doc${i}.log"
done
for f in *.log; do
[[ -e "$f" ]] || { echo "[ERROR] No hay archivos .log para renombrar."; exit 1; }
mv -- "$f" "${f%.log}.txt"
done
echo
echo "OK: se crearon y renombraron los 5 archivos."
echo "Archivos finales:"
ls -1
Salida esperada (ejemplo):
Escribe tu nombre y pulsa Enter: Carlos
OK: se crearon y renombraron los 5 archivos.
Archivos finales:
doc1.txt
doc2.txt
doc3.txt
doc4.txt
doc5.txt
mision.ps1)$ErrorActionPreference = "Stop"
Write-Host "=========================="
Write-Host "LA MISION IMPOSIBLE :)"
Write-Host "=========================="
Write-Host ""
while ($true) {
$nombre = Read-Host "Escribe tu nombre y pulsa Enter"
if ([string]::IsNullOrWhiteSpace($nombre)) {
Write-Host "[ERROR] Debes escribir un nombre."
Write-Host ""
continue
}
if (Test-Path -LiteralPath $nombre) {
Write-Host "[ERROR] Ya existe '$nombre'. Usa otro nombre."
Write-Host ""
continue
}
break
}
New-Item -ItemType Directory -Path $nombre | Out-Null
Set-Location -Path $nombre
1..5 | ForEach-Object {
New-Item -ItemType File -Path ("doc{0}.log" -f $_) | Out-Null
}
Get-ChildItem -Filter "*.log" | Rename-Item -NewName { $_.Name -replace '\.log$', '.txt' }
$txtCount = (Get-ChildItem -Filter "*.txt").Count
if ($txtCount -ne 5) {
throw "No se pudieron generar los 5 archivos .txt"
}
Write-Host ""
Write-Host "OK: se crearon y renombraron los 5 archivos."
Write-Host "Archivos finales:"
Get-ChildItem -Name
Salida esperada (ejemplo):
Escribe tu nombre y pulsa Enter: Ana Maria
OK: se crearon y renombraron los 5 archivos.
Archivos finales:
doc1.txt
doc2.txt
doc3.txt
doc4.txt
doc5.txt
Reto 1: Cambia los nombres para crear informe1.log … informe5.log.
Reto 2: Crea 10 archivos en vez de 5.
Reto 3: Pide al usuario cuantos archivos quiere crear y usa ese numero.
Reto 4: Antes de renombrar, muestra cuantos .log existen.
Reto 5: Al final, escribe un resumen.txt con fecha y nombre del alumno.
Pista guiada para reto 3 en Batch:
set /p "cantidad=Cuantos archivos quieres crear: "
for /L %%i in (1,1,%cantidad%) do type nul > "doc%%i.log"
Checklist editorial:
Fuente verificada.Checklist funcional (manual):
CarlosCarlos con doc1.txt…doc5.txt.Ana MariaAna Maria con 5 .txt.mision.bat.txt.Tipo: Todos los archivos.Acceso denegado.ren *.log *.txt..log.Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
mision.sh.chmod +x mision.sh
./mision.sh
Si. Primero estudia la solucion minima, luego usa la mejorada para demostrar dominio tecnico.
Para soportar nombres con espacios, como Ana Maria.
doc por otro prefijo?Si, mientras mantengas la logica de crear y renombrar.
No. El ejercicio de clase es Batch, pero las equivalencias te ayudan a entender automatizacion real.