none
Problemas al ejecutar archivos .bat RRS feed

  • 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
    miércoles, 8 de febrero de 2017 22:18

Todas las respuestas

  • Que tal Buen día.

    En lo personal he ejecutado bats en windows 10 profesional que hice en windows 7 y se ejecutan sin problema, pudieras probar ejecutando el bat como administrador.

    Espero nos comentes mas detalles de tu error.

    Gracias.

    jueves, 9 de febrero de 2017 1:16
  • Hola, te muestra algún error o simplemente no hace nada? que yo sepa no hay cambios con esto, las rutas son correctas?

    * Colaborador ad honorem et pro bono *

    viernes, 10 de febrero de 2017 20:21
  • ¿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
    sábado, 11 de febrero de 2017 17:59