none
Как правильно задать время в переменной среды RRS feed

  • Вопрос

  • Есть bat фаил примерно тиакого содержания

    set datetime=%time:~0,02%.%time:~3,2%...%date:~-10%
    copy E:\Reports\report.txt E:\Reports\%datetime%.txt
    del E:\Reports\report.txt

    Суть такова, тестовая программа запускаеться в определенное время и по окончанию выполнения задачи формируеть файл report.txt, после чего запускаеться данный bat файл и перименовыевает файл отчета в формате время..дата.txt..
    Проблема. Формируеться время только с 10.00 и до 23.00, а все остальное время с 00.00 до 09.00 включительно почемуто пропадает..
    Вопрос. Как правельно задать set datetime=%time:~0,02%.%time:~3,2%...%date:~-10% что бы в имени файла попадало все время?

    • Изменен тип Max.Lebedev 17 августа 2009 г. 8:50
    • Изменено Vasily GusevModerator 18 августа 2009 г. 4:31 Ошипки в заголовке поправил.
    17 августа 2009 г. 7:07

Все ответы

  • set datetime=%time:~0,5%-%date%
    copy E:\Reports\report.txt E:\Reports\%datetime::=.%.txt

    Получится, к примеру, 08.20-18.08.2009.txt

    Если с секундами,то %time:~0,-3%
    • Предложено в качестве ответа Artem Gusev HCG 17 августа 2009 г. 9:36
    17 августа 2009 г. 7:21
  • Воспользовался Вашим советом, вот что получилость,
    !!  set datetime=%time:~0,5%-%date%  - если стоит ~0,5% то время не отображаеться,
    если стоит ~1,5% то отображаються только вторая часть часа, т.о. 08.00 - 8.00, 00,36 - 0,36, 11,40 - 1,40
    и никак, что бы отображалось правельно.. чч,мм-дд.мм.гггг

    • Предложено в качестве ответа Artem Gusev HCG 17 августа 2009 г. 9:36
    • Отменено предложение в качестве ответа Vasily GusevModerator 27 августа 2009 г. 5:05
    17 августа 2009 г. 7:57
  • Как мне все таки задать правельно =%time:~ ?

    17 августа 2009 г. 8:54
  • Как мне все таки задать правельно =%time:~ ?

    01MDM подсказал вам правильно.

    Можно еще так:

    без точек:
    set datetime=%TIME:~0,2%%TIME:~3,2%-%DATE:~0,2%%DATE:~3,2%%DATE:~6,4%
    echo %datetime%

    с точками:
    set datetime=%TIME:~0,2%.%TIME:~3,2%-%DATE:~0,2%.%DATE:~3,2%.%DATE:~6,4%
    echo %datetime%

    Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.
    17 августа 2009 г. 9:33
  • Воспользовался Вашим советом, вот что получилость,
    !!  set datetime=%time:~0,5%-%date%  - если стоит ~0,5% то время не отображаеться,
    если стоит ~1,5% то отображаються только вторая часть часа, т.о. 08.00 - 8.00, 00,36 - 0,36, 11,40 - 1,40
    и никак, что бы отображалось правельно.. чч,мм-дд.мм.гггг


    Что показывает в команда 'echo %time:~0,5%'. Вообще, если честно, не встречал глюков с %date% %time%
    17 августа 2009 г. 12:25