Використовуйте cmd.exe
командний процесор, щоб створити ім'я файлу з позначкою часу для реєстрації результатів запланованого завдання
Щоб спиратися на відповіді інших осіб тут, можливо, ви хочете створити вихідний файл, який має дату та / або час, вбудовані в ім’я файлу. Ви можете використовувати cmd.exe
командний процесор, щоб зробити це за вас.
Примітка: Цей прийом приймає рядковий вивід внутрішніх змінних середовища Windows і нарізає їх на основі позиції символу. Через це точні значення, наведені в прикладах нижче, можуть бути невірними для регіону Windows, який ви використовуєте. Крім того, з деякими регіональними налаштуваннями деякі компоненти дати або часу можуть вводити пробіл у створеному імені файлу, коли їх значення менше 10. Щоб пом'якшити цю проблему, оточіть ім'я файлу лапками, щоб будь-які ненавмисні пробіли у файлі name не порушить командного рядка, який ви створюєте. Експериментуйте і знайдіть, що найкраще підходить для вашої ситуації.
Майте на увазі, що PowerShell
це потужніше, ніж cmd.exe
. Одним із способів він є більш потужним, оскільки він може працювати з різними регіонами Windows. Але ця відповідь стосується вирішення цього питання за допомогою cmd.exe
, а не PowerShell
, тому ми продовжуємо.
Використовуючи cmd.exe
Ви можете отримати доступ до різних компонентів дати та часу, нарізавши змінні внутрішнього середовища %date%
і %time%
, як зазначено нижче (знову ж таки, точні значення нарізки залежать від регіону, налаштованого в Windows):
- Рік (4 цифри):
%date:~10,4%
- Місяць (2 цифри):
%date:~4,2%
- День (2 цифри):
%date:~7,2%
- Година (2 цифри):
%time:~0,2%
- Хвилини (2 цифри):
%time:~3,2%
- Другий (2 цифри):
%time:~6,2%
Припустимо, ви хочете, щоб ваш файл журналу був названий у такому форматі дати / часу: " Log_[yyyyMMdd]_[hhmmss].txt
". Ви б використали наступне:
Log_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt
Щоб перевірити це, запустіть такий командний рядок:
cmd.exe /c echo "Log_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt"
Склавши все це разом, щоб перенаправити як сценарій, так stdout
і stderr
з вашого сценарію, у файл журналу, названий поточною датою та часом, використання може використовувати наступне як ваш командний рядок:
cmd /c YourProgram.cmd > "Log_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt" 2>&1
Зверніть увагу, що використання лапок навколо імені файлу для обробки примірників компонента дати чи часу може вводити пробіл.
У моєму випадку, якби поточною датою / часом були 05.05.2017 9:05:34, вищезазначений командний рядок видав би таке:
cmd /c YourProgram.cmd > "Log_20171005_ 90534.txt" 2>&1