ряд простых задач

Ответить
Аватара пользователя
элькхар

ряд простых задач

Сообщение элькхар »

Здравствуйте.

Недавно начал изучать bat и все время косячу в коде

1 задача

необходимо сделать свой таймер

мой код

-------------------------------------------------------

@echo off

setlocal enabledelayedexpansion

if "%1"=="/?" goto 2

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

set h0=%%i

set m0=%%j

set s0=%%k

)

set h0=%%i*3600

set m0=%%j*60

set /a s0=%h0%+%m0%+%s0%

:1

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

set h1=%%i

set m1=%%j

set s1=%%k

)

set h1=%%i*3600

set m1=%%j*60

set /a s1=%h1%+%m1%+%s1%

set /a diff=s1-s0



if %1 lss %diff% goto eof



goto 1



:2

echo %~nx0 seconds





:eof

endlocal

-----------------------------------------------------------

но это не работает на числах 08 и 09 (восьмеричная система) попытался исправить так

--------------------------------------------------------

@echo off

setlocal enabledelayedexpansion

if "%1"=="/?" goto help

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

set H0=%%i

if %H0%==08 set H0=8

if %H0%==09 set H0=9

set M0=%%j

if %M0%==08 set M0=8

if %M0%==09 set M0=9

set S0=%%k

if %S0%==08 set S0=8

if %S0%==09 set S0=9

)

set H0=!H0!*3600

set M0=!M0!*60

set /a S0=!S0!+!M0!+!H0!

:1

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

set H1=%%i

if %H1%==08 set H1=8

if %H1%==09 set H1=9

set M1=%%j

if %M1%==08 set M1=8

if %M1%==09 set M1=9

set S1=%%k

if %S1%==08 set S1=8

if %S1%==09 set S1=9

)

set H1=!H1!*3600

set M1=!M1!*60

set /a S1=!H1!+!M1!+!S1!

set /a dif=!S1!-!S0!

if %1 lss %dif% goto eof

goto 1



:help

echo %~nx0 seconds



:eof

endlocal

------------------------------------------------------------------------

пишет непредвиденное появление =8



ну и 3 альтернатива хоть и не удовлетворяет заданным нам условиям( в универе)

--------------------------------------------

@echo off

setlocal enabledelayedexpansion

if "%1"=="/?" goto help

set h1=%%1

set /a h1=h1*100

:p

ping -n 1 -w !h1! 192.168.254.254 >nul

echo 1

goto eof

:help

echo %~nx0 seconds

:eof

endlocal

-------------------------------------------------

тоже отказывается работать





2 задача

Написать программу, показывающую, какой файл выполнится, если набрать команду, переданную в параметрах.



Должны поддерживаться как команды с расширением, так и без (т.е. calc и calc.exe)



Пример запуска:

>which.cmd calc

C:\Windows\system32\calc.exe

Не представляю как это реализовать нашел что то про reg, но все попытки закочились неудачей



3 и последний вопрос может расскажите как это работает

--------------------

@echo off

md helpgen

cd helpgen

for /f %%i in ('help ^| findstr /r /c:"^[A-Z][A-Z]* "') do help %%i>%%i.txt

-------------------------

а именно зачем нужны 2 скобки a-z a-z и *
Аватара пользователя
Petya V4sechkin

Re: ряд простых задач

Сообщение Petya V4sechkin »

Цитата элькхар:



ряд простых задач



Для каждой задачи - отдельная тема. С осмысленным названием.

Основные принципы размещения и поиска информации на конференции OSzone.net



Цитата:



темы организуются по принципу "одна проблема - одна тема"
Ответить

Вернуться в «Тест-форум»