Что мне нужно сделать, чтобы моя программа каждый раз записывала в один и тот же файл, и дата с временем могли выполняться?

Вопрос или проблема

Я пытаюсь протоколировать использование моего ПК дома.

Я запускаю startTime.bat в консоли Windows mmc через политику -> конфигурация компьютера -> Windows -> скрипты (запуск/выключение) -> запуск

startTime.bat:

date /t >> startTime.txt
time /t >> startTime.txt

Скрипт, казалось, работал в начале, но теперь он работает только sporadic, пропуская дни, когда я точно знаю, что включал и выключал свой ПК.

Что мне нужно сделать, чтобы убедиться, что моя программа будет записывать данные в один и тот же файл каждый раз, и время и дата могли быть выполнены?

Мне нужно ждать, пока другие программы загрузятся или станут исполняемыми каким-либо образом? И если да, как мне это сделать?

Действительно ли тот способ, которым я это сделал, может выполнять задачу с надежностью? Или быстрое загрузка Windows чаще всего как-то мешает выполнению этого скрипта?

Будет ли место shell:startup более надежным? У меня были проблемы и там в прошлом с программой, которая нуждалась в звуковых файлах и не могла их надежно загрузить, иногда происходил случайный сбой.

Ответ или решение

Для того чтобы обеспечить надежную запись времени и даты начала работы вашего ПК в один и тот же файл, необходимо учесть несколько факторов. Рассмотрим ваши вопросы и предложим конкретные рекомендации.

  1. Проблема с выполнением сценария: Скрипты, выполняемые при запуске системы, могут не всегда срабатывать должным образом, особенно если другие программы или системы еще не завершили свою загрузку. В случае с Windows Fast Boot, ваш компьютер может загружаться быстрее, что иногда затрудняет выполнение ваших скриптов.

  2. Рекомендуемое решение: Вместо того чтобы использовать групповые политики, попробуйте использовать Планировщик заданий Windows (Task Scheduler), который предоставляет более гибкие настройки.

    • Откройте "Планировщик заданий" и создайте новую задачу.
    • Установите триггер "При входе в систему".
    • Убедитесь, что в параметрах задачи выбрана опция "Запустить с наивысшими правами".
    • В разделе "Действия" добавьте вашу команду на выполнение файла startTime.bat.
  3. Изменение скрипта: Вместо простой записи только текущей даты и времени, вы можете изменить скрипт, чтобы он также записывал имя компьютера или другую информацию для лучшего логирования. Например:

    @echo off
    echo %date% %time% >> startTime.txt
  4. Задержка перед выполнением: Если вы хотите добавить задержку, чтобы дать время для загрузки других программ, вы можете использовать команду timeout в вашем скрипте. Например:

    @echo off
    timeout /t 30 /nobreak >nul
    echo %date% %time% >> startTime.txt

    Эта команда установит 30-секундную задержку перед записью, что может помочь избежать проблем, связанных с быстрой загрузкой.

  5. Контроль над доступом к файлу: Убедитесь, что файл startTime.txt доступен для записи, а у вашей учетной записи достаточно прав для его изменения. Возможно, стоит задать полный путь к файлу для избежания путаницы с рабочей директорией.

  6. Использование shell:startup: Если вы хотите использовать shell:startup, помните, что это может быть менее надежный метод, так как некоторые программы также выполняются из этого места, и это может вызвать конфликты. Рекомендуется по возможности использовать Планировщик задач.

Этот подход позволит вам обеспечить более надежный механизм регистрации времени работы вашего компьютера. Если у вас будут дополнительные вопросы или проблемы, не стесняйтесь обращаться за помощью.

Оцените материал
Добавить комментарий

Капча загружается...