Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Расчет времени и вывод часа, минуты, секунды на разных строках (http://forum.oszone.net/showthread.php?t=235920)

Wookie-Altai 04-06-2012 09:22 1927628

Расчет времени и вывод часа, минуты, секунды на разных строках
 
Можно ли вычислить время по схожей с такой схеме -
Код:

for /f "tokens=1,2* delims=." %%I in ('echo %...%') do set /a hor=%%I& set /a min=%%J& set /a sec=%%K
@echo hor
@echo min
@echo sec
pause

Вместо многоточия - time. Данный скрипт не работает. Помогите сделать рабочий

Iska 04-06-2012 10:28 1927644

Например, так:
читать дальше »
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "tokens=1-3 delims=:." %%i in ('echo %time%') do (
        set /a iHours=%%i
        set /a iMinutes=%%j
        set /a iSeconds=%%k
)

if defined iHours echo %iHours%
if defined iMinutes echo %iMinutes%
if defined iSeconds echo %iSeconds%

endlocal
exit /b 0


Iska 04-06-2012 11:53 1927694

Wookie-Altai, зря отметили, снимите благодарность. Я вспомнил, что с «set /a» не всё так просто: будут проблемы с присвоением «09».

Поищите по разделу, корректные примеры были.

CyberMuesli 05-06-2012 02:10 1928253

Цитата:

Цитата Iska
будут проблемы с присвоением «09» »

и 08 тоже инвалидная цифра в восьмеричной системе

Код:

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "tokens=1-3 delims=:. " %%i in ('echo %time%') do (
        set /a iHours=100%%i %%100
        set /a iMinutes=100%%j %% 100
        set /a iSeconds=100%%k %% 100
)

if defined iHours echo %iHours%
if defined iMinutes echo %iMinutes%
if defined iSeconds echo %iSeconds%

endlocal
exit /b 0


Iska 05-06-2012 02:38 1928257

Цитата:

Цитата CyberMuesli
и 08 тоже инвалидная цифра в восьмеричной системе »

Да.

CyberMuesli 05-06-2012 04:10 1928269

Цитата:

Цитата Iska
Да. »

кроме этого, код set /a iMinutes=100%%j %% 100 годен

нет, не годен. он нули отсекает, а не пробелы. Код поправлен - добавлен разделитель пробел

SendMessage 06-06-2012 17:00 1929512

Я, конечно, извиняюсь, но почему не по простому?
Код:

set nTime=%time%
set /a Hours=%nTime:~,2%
set /a Minutes=1%nTime:~3,2%-100
set /a Seconds=1%nTime:~6,2%-100

echo %Hours%
echo %Minutes%
echo %Seconds%


CyberMuesli 07-06-2012 01:32 1929759

Цитата:

Цитата SendMessage
Я, конечно, извиняюсь, но почему не по простому? »

дело вкуса
у Вас пробел в часах будет, на этом можно погореть

SendMessage 07-06-2012 12:52 1929996

Цитата:

Цитата CyberMuesli
у Вас пробел в часах будет, на этом можно погореть »

Погореть? Каким образом? Пробелы в начале в числовом выражении не учитываются.
что set /a n=8, что set /a n= 8 - разницы в результате не будет никакой.

Iska 07-06-2012 14:16 1930032

А здесь:
Цитата:

Цитата SendMessage
Код:

set /a Seconds=1%nTime:~6,2%-100
»

;)?

CyberMuesli 07-06-2012 15:21 1930082

Цитата:

Цитата SendMessage
Погореть? Каким образом? »

каким-нибудь образом, где будет предполагаться наличие слева нуля или его отсутствие, но не наличие пробела

gora 08-06-2012 15:52 1930695

Цитата:

Цитата CyberMuesli
у Вас пробел в часах будет »

Можно убрать пробел:
Код:

set /a Hours=%nTime:~,2%+0
Цитата:

Цитата Iska
А здесь: »

А что тут не так?

CyberMuesli 08-06-2012 16:36 1930744

Цитата:

Цитата gora
Можно убрать пробел: »

Цитата:

Цитата gora
А что тут не так? »

http://forum.oszone.net/post-1928253.html#post1928253

SendMessage 22-06-2012 07:41 1938568

Извините, давно не заходил.
Цитата:

Цитата Iska
А здесь:
Цитата SendMessage:
Код:
set /a Seconds=1%nTime:~6,2%-100
»
? »

А что здесь может быть смущающим?
108-100=8
109-100=9
Никак не 09 и не 08. Так что ошибок не будет. Или что-то другое Вас смущает? Я не могу смоделировать здесь ошибку. Был бы признателен за разъяснения. Может при каких-то региональных стандартах выводится 0-9 секунд вместо 00-09?
Цитата:

Цитата CyberMuesli
каким-нибудь образом, где будет предполагаться наличие слева нуля или его отсутствие, но не наличие пробела »

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

PS. Хотя все это, наверное, и не стоит какого-то обсуждения и разбора — буря в стакане. В кои-то веки заглянул на форум и ввязался в пустую дискуссию. :)


Время: 07:47.

Время: 07:47.
© OSzone.net 2001-