Usuario
Problemas al ejecutar archivos .bat

Pregunta
-
Estimados,
Tengo dificultades para ejecutar el siguiente los siguientes comandos en .bat
@echo off
set ano=%date:~6,4%
set mes=%date:~3,2%
set dia=%date:~0,2%
set tiempo=%time:~0,2%
set min=%time:~3,2%
mkdir C:\msdos\lol1_%ano%-%mes%-%dia%_%tiempo%%min%
xcopy D:\archivos_contabilidad\*.* /s/d/f C:\msdos\lol1_%ano%-%mes%-%dia%_%tiempo%%min%\*.*Estos comandos se ejecutan con normalidad en WINDOWS 7 - 8 , pero en WINDOWS 10 no ejecuta el fichero , quisiera saber si en WINDOWS 10 ha cambiado la nomenclatura para script .bat
Espero sus comentarios.
Saludos.
- Cambiado Moderador M jueves, 9 de febrero de 2017 16:12
Todas las respuestas
-
-
-
¿Has comprobado si los valores de las variables DATE y TIME se ajustan al formato esperado para extraer de ellas los datos adecuados? Revisa los formatos de fecha y hora en la configuración regional, sobre todo si emplean un solo dígito para el día, el mes o la hora. ¿Usas el fichero .bat a mano o mediante algún procedimiento automático como una tarea programada? Coloca un echo C:\msdos\lol1_%ano%-%mes%-%dia%_%tiempo%%min% que te dé la ruta construida, para comprobar que su sintaxis sea correcta y no tenga caracteres extraños como barras o dos puntos; si lo ejecutas de forma desatendida, que te lo redirija a un fichero (echo lol...%min%>>prueba.txt) para revisarlo después.
Además, como el contenido de %date% y %time% puede variar de una sustitución a otra, te aconsejo que guardes una instantánea en una variable auxiliar y extraigas de ella el día, mes, año, etc. Para la fecha no es tan delicado a menos que el .bat se ejecute en torno a medianoche, pero para la hora sí. Es extremadamente improbable, pero ni mucho menos imposible, que las sentencias "set tiempo" y "set min" se procesen justo en la frontera de una hora en punto, por ejemplo entre 11:59:59 y 12:00:00, con lo cual la combinación de %tiempo% y %min% podría llegar a dar 1100, no 1159 ni 1200. Entonces, suponiendo el formato "día/mes/año horas:minutos" con cuatro dígitos para el año y dos para lo demás, quedaría más o menos así:
set fechayhora=%date% %time%
set ano=%fechayhora:~6,4%
set mes=%fechayhora:~3,2%
set dia=%fechayhora:~0,2%
set tiempo=%fechayhora:~11,2%
set min=%fechayhora:~14,2%- Propuesto como respuesta Alejandro ACMVP domingo, 19 de febrero de 2017 14:56