Доступ к текущему времени в сценарии пакетной обработки окон

Я нашел довольно хорошую ссылку здесь. http://linlog.skepticats.com/content/udevautorun/

В основном можно поместить сценарии в/etc/udev для всех блочных устройств или определенных.

1
задан 28 August 2009 в 18:03
6 ответов
FOR /F "TOKENS=1 DELIMS=:" %%A IN ('TIME/T') DO SET HH=%%A
FOR /F "TOKENS=2 DELIMS=:" %%A IN ('TIME/T') DO SET MM=%%A

теперь у Вас есть две переменные %HH % в течение многих часов и %MM % в течение многих минут. Надеюсь, что это помогло.

4
ответ дан 3 December 2019 в 16:14

Время и дата определяется в двух системных переменных: % %time и %date %

(Остерегайтесь, формат зависит региональных настроек и настроек языка),

C:> повторяют %time %

17:16:13,39

C:> повторяют %date %

28.08.2009

C:>

4
ответ дан 3 December 2019 в 16:14

То, что необходимо сделать, в основном использовать %time переменную % и указать для подсчета определенного числа символов в строку для извлечения части, которую Вы хотите. Ввод "эха %time %" в подсказке cmd возвращает что-то вроде этого:

11:11:38.36

Для получения только часа из этой строки введите "эхо %time: ~-11,2%" для отображения просто первых 2 символов. Вы в основном говорите, что это для отображения %time переменной % - "повторяет %time... ", символы количества 11 назад от конца строки -"...: ~ 11..." и захват 2 символа от той точки - "..., 2%"

Для захвата минут, команда была бы "эхом %time: ~ 8,2%"

Для установки переменного "часа" на текущий час, Вы ввели бы это:

час набора = время %: ~-11,2%

Можно также представить части в виде строки вместе для создания пользовательского формата в любой комбинации, в которой Вы нуждаетесь также. Например, для добавления тире вместо двоеточия между HH:MM:SS Вы ввели бы это:

"эхо %time: в ~-11,2 раз %-%: в ~-8,2 раз %-%: ~-5,2%"

и доберитесь: HH-MM-SS

Надеюсь, это поможет. Мы используем %date переменную % и части всего этого время для автоматического создания файлов в любой строковой комбинации, в которой нам нужно имя файла, чтобы быть.

1
ответ дан 3 December 2019 в 16:14
  • 1
    Почему Вы рассчитываете от конца? Почему бы не " эхо %time: ~ 0,2%" в течение часа и " эхо %time: ~ 3,2%" в течение минут? –  Paused until further notice. 28 August 2009 в 18:53
  • 2
    положительная сторона - я don' t знают, это - способ, которым мы делали его в наших пакетах навсегда, и я предполагаю, что мне никогда не приходило в голову запускаться с начала. Я думал, что необходимо было рассчитать от конца, но это делает его немного легче - Спасибо! –  August 28 August 2009 в 19:34

Ответ и сохранение объединяющегося Merstzik и Benoit вызова к внешней программе, можно сделать это:

FOR /F "TOKENS=1 DELIMS=:" %%A IN ("%TIME%") DO SET HH=%%A
FOR /F "TOKENS=2 DELIMS=:" %%A IN ("%TIME%") DO SET MM=%%A
1
ответ дан 3 December 2019 в 16:14

Объединение всех этих сообщений дает ответ на исходный вопрос:

for / f "tokens = 1-3 delims = :." %% A in ("% time%") do (

set HH = %% A

set MM = %% B

set SS = %% C)

Загрузит ваш ЧЧ ММ и Ковши SS с соответствующими значениями. Вы, конечно, можете ввести любые имена переменных вместо них. (За исключением зарезервированных имен.) Вы также можете опустить "." в разделе разделителей, если вы хотите, чтобы дробные секунды сохранялись в последнем значении. (% time% содержит HH: MM: SS.ss)

2
ответ дан 3 December 2019 в 16:14

Это опасно пытаться сделать это в CMD, потому что результат TIME / T или% TIME% зависит от локали. Если вы настроили один языковой стандарт, вы можете сделать следующее:

FOR /F "TOKENS=1,2 DELIMS=: " %%A IN ('TIME/T') DO SET HH=%%A && SET MM=%%B

Однако вам будет гораздо лучше использовать PowerShell. Сценарии CMD сложно писать надежно. О написании хороших сценариев CMD можно многому научиться, но лучше применить эти клетки мозга к PowerShell.

$hour = (Get-Date).Hour
0
ответ дан 3 December 2019 в 16:14

Теги

Похожие вопросы