Autor
|
Tema: [AYUDA] CMD codigo minutos a segundos (Leído 1,945 veces)
|
Cronno
Desconectado
Mensajes: 3
|
Muy buenas a tod@s.
En mi duda me enfocaré en el comando shutdown ya que desconozco si se puede hacer de otra forma.
Resulta que utilizamos bastante el codigo shutdown /s /t XXX para apagar el ordenador a los segundos determinados desde un archivo CMD.
El caso es que utilizamos, por comodidad, para que nos pregunte cuanto tiempo deseamos esperar para apagar el PC y lo hacemos así ha sabiendas que el tiempo va en segundos: set /p valor=Tiempo hasta apagar el dispositivo? : shutdown /s /t %valor%
Hasta ahí todo bien, pero queremos agilizar el proceso e introducir el valor directamente en minutos y que lo introduzca como segundos en el comando, salvo exista otra opción. Es decir, poner por ejemplo 4,3 minutos y que el solo añada a la línea shutdown /s /t el valor en segundos y lo ejecute, o lo que sería lo mismo: shutdown /s /t 270 (270 que son los 4,3 minutos pasados a segundos)
Para hacer esto último sería multiplicar el valor dado (%valor%) multiplicado por 60 pero no se cómo realizar eso. Alguien me puede orientar?
|
|
« Última modificación: 22 Abril 2025, 22:30 pm por Cronno »
|
En línea
|
|
|
|
Tachikomaia
Conectado
Mensajes: 1.563
Hackentifiko!
|
Deepseek me respondió esto: ### Solución para convertir minutos a segundos en el comando `shutdown` Puedes modificar tu script para que acepte minutos (incluso con decimales, como `4.3`) y los convierta automáticamente a segundos.
Aquí tienes una versión mejorada de tu script:
```cmd @echo off set /p minutos="Tiempo hasta apagar el dispositivo (en minutos)? : "
:: Reemplazar coma por punto por si el usuario introduce 4,3 en lugar de 4.3 set minutos=%minutos:,=.%
:: Calcular segundos (minutos * 60) usando PowerShell para soportar decimales for /f %%a in ('powershell -command "[math]::Floor(%minutos% * 60)"') do set segundos=%%a
echo Apagando el equipo en %segundos% segundos (%minutos% minutos)... shutdown /s /t %segundos% ```
### Explicación: 1. **`set /p minutos=...`** → Pide al usuario que introduzca el tiempo en minutos. 2. **`%minutos:,=.%`** → Convierte comas en puntos para evitar errores con decimales (ej: `4,3` → `4.3`). 3. **`powershell -command "[math]::Floor(%minutos% * 60)"`** → Usa PowerShell para hacer la multiplicación (`minutos × 60`) y redondear hacia abajo. 4. **`shutdown /s /t %segundos%`** → Ejecuta el comando de apagado con el tiempo en segundos.
### Ejemplo de uso: - Si el usuario introduce **`4.3`**, el script calculará: `4.3 × 60 = 258 segundos` → `shutdown /s /t 258`.
### Alternativa sin PowerShell (solo minutos enteros) Si prefieres evitar PowerShell y solo necesitas minutos enteros (sin decimales), puedes hacerlo así: ```cmd @echo off set /p minutos="Tiempo hasta apagar el dispositivo (en minutos, enteros)? : " set /a segundos=%minutos% * 60 shutdown /s /t %segundos% ```
### Conclusión La versión mejorada permite introducir minutos en lugar de segundos, haciéndolo más práctico.
Si tienes más dudas sobre scripts en `CMD`, ¡avísame! Si no te sirve, lo siento. https://chat.deepseek.com/
|
|
|
En línea
|
|
|
|
Cronno
Desconectado
Mensajes: 3
|
Gracias. No había caido en eso. Estoy ya viejo y me falta costumbre con la IA  Probé con el copilot y me lo hizo a la primera, ya después lo ha ido mejorando muchísimo más añadiendo también reinicio, hybernación, etc. y puse alguna cosa propia. Nuevamente, gracias por responder  Lo dejo por si a alguien le interesa: :inicio @echo off TITLE %USERNAME% MODE con:cols=120 lines=80 color 3
:inicio cls echo Bienvenido al administrador de apagado/reinicio. @echo off echo. echo ================================================================= echo by Flamman ^| %DATE% ^| %TIME% echo ================================================================= setlocal enabledelayedexpansion echo [ 1 ] Apagar el equipo en el tiempo estipulado echo [ 2 ] Reiniciar el equipo en el tiempo estipulado echo [ 3 ] Cancelar apagado/reinicio programado echo [ 4 ] Salir echo ================================================================= echo. set /p opcion=Introduce la opcion deseada:
if "%opcion%"=="1" goto apagar if "%opcion%"=="2" goto reiniciar if "%opcion%"=="3" goto cancelar if "%opcion%"=="4" goto salir
echo Opcion no valida. Intenta de nuevo. goto inicio
:apagar echo Introduce los minutos (pueden incluir decimales): set /p minutos= set /a verificacion=%minutos% 2>nul
if "%verificacion%"=="" ( echo Entrada no valida. Por favor, introduce un numero. goto apagar )
set /a segundos=60 * !minutos! echo Apagando el equipo en !segundos! segundos... shutdown /s /t !segundos! echo Accion registrada: Apagar en !segundos! segundos >> log_apagar.txt goto inicio
:cancelar echo Cancelando apagado/reinicio programado... shutdown /a timeout /t 2 echo Acción registrada: Cancelar apagado/reinicio >> log_apagar.txt echo Cancelando temporizadores creados... goto inicio
:salir cls color 8 echo. set "respuesta=" set /p respuesta="Seguro que quieres salir? (S/N) :" if /i "%respuesta%"=="s" ( cls color 3 echo. echo. echo. echo. ========================================== echo. =========== HASTA LA PROXIMA =========== echo. ========================================== echo. echo. echo. timeout /t 2 /nobreak > nul Exit ) if /i "%respuesta%"=="n" goto:inicio ( cls goto:op5 )
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Sumar Hs ; Minutos ; Segundos . Milisegundos
Programación Visual Basic
|
e500
|
4
|
17,293
|
30 Marzo 2009, 01:31 am
por e500
|
|
|
[Solucionado]Problemas para crear función Decimal a Grados Minutos Segundos
Programación Visual Basic
|
LeandroA
|
3
|
6,031
|
5 Marzo 2013, 20:54 pm
por Danyfirex
|
|
|
Ayuda con un codigo Java respecto a horas/minutos/segundos y sumas con ellas
Java
|
Unrealjose
|
4
|
8,816
|
6 Abril 2017, 20:45 pm
por Unrealjose
|
|
|
Un nuevo material permitiría cargar el coche en minutos o el móvil en segundos
Noticias
|
wolfbcn
|
0
|
1,653
|
8 Marzo 2018, 21:35 pm
por wolfbcn
|
|
|
validacion de puntos geograficos, grados, minutos, segundos y comparacion
Programación C/C++
|
Beginner Web
|
8
|
3,427
|
14 Diciembre 2018, 03:21 am
por K-YreX
|
|