Я нашел довольно хорошую ссылку здесь. http://linlog.skepticats.com/content/udevautorun/
В основном можно поместить сценарии в/etc/udev для всех блочных устройств или определенных.
То, что необходимо сделать, в основном использовать %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 переменную % и части всего этого время для автоматического создания файлов в любой строковой комбинации, в которой нам нужно имя файла, чтобы быть.
Ответ и сохранение объединяющегося 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
Объединение всех этих сообщений дает ответ на исходный вопрос:
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)
Это опасно пытаться сделать это в 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