[BAT] Procenty


(system) #1

Chciałbym napisać "program" który dodaje co 4 sek. 1 procent, co 5 procentów dodawał jedną kreskę do %kreski% i wyświetlał to.

Oto mój kod:

@set procenty=0

@set kreski="--------------------"

:PETLA

@if %procenty% == 100 goto KONIEC

@call wait 4

@cls

@set /a procenty=procenty+"1"

@echo Trwa instalacja...

@echo %procenty%%

@if %procenty% == 5 (set kreski = "|-------------------")

@if %procenty% == 10 (set kreski = "||------------------")

@if %procenty% == 15 (set kreski = "|||-----------------")

@if %procenty% == 20 (set kreski = "||||----------------")

@if %procenty% == 25 (set kreski = "|||||---------------")

@if %procenty% == 30 (set kreski = "||||||--------------")

@if %procenty% == 35 (set kreski = "|||||||-------------")

@if %procenty% == 40 (set kreski = "||||||||------------")

@if %procenty% == 45 (set kreski = "|||||||||-----------")

@if %procenty% == 50 (set kreski = "||||||||||----------")

@if %procenty% == 55 (set kreski = "|||||||||||---------")

@if %procenty% == 60 (set kreski = "||||||||||||--------")

@if %procenty% == 65 (set kreski = "|||||||||||||-------")

@if %procenty% == 70 (set kreski = "||||||||||||||------")

@if %procenty% == 75 (set kreski = "|||||||||||||||-----")

@if %procenty% == 80 (set kreski = "||||||||||||||||----")

@if %procenty% == 85 (set kreski = "|||||||||||||||||---")

@if %procenty% == 90 (set kreski = "||||||||||||||||||--")

@if %procenty% == 95 (set kreski = "|||||||||||||||||||-")

@if %procenty% == 100 (set kreski = "||||||||||||||||||||")

@echo %kreski%

@goto PETLA

:KONIEC

@pause

I są dwa problemy:

  • [*:158szdhl]Zamiast kresek wyświetla "ECHO jest włączone"

Jak rozwiązać te problemy?


(Drobok) #2

Tutaj raczej to jest wina twojej konsoli. Wpisz echo on. Powinno zadziałać.

Bo nigdzie nie masz procenta ;p

Przypominam, że % uzyskasz wpisując w programie 2x % czyt %%.


(system) #3

Dzięki za znak procentu, ale z tymi kreskami nie działa :confused:


(Gerrard845) #4

na samym początku dopisz @echo off , powinno zadziałać :wink:


(Drobok) #5

Btw jak by się czepiać to masz spacje między kreski a =, oraz między = a " co powoduje nie podmienianie zmiennej :stuck_out_tongue:

Poza tym jak masz wyjście z pętli to nigdy nie wyświetli ci 100% tak więc proponuję >>

@set procenty=0@set kreski="--------------------":PETLA@call wait 4@cls@set /a procenty=procenty+"1"@echo Trwa instalacja...procenty%%procenty% == 5 (set kreski="|-------------------")procenty% == 10 (set kreski="||------------------")procenty% == 15 (set kreski="|||-----------------")procenty% == 20 (set kreski="||||----------------")procenty% == 25 (set kreski="|||||---------------")procenty% == 30 (set kreski="||||||--------------")procenty% == 35 (set kreski="|||||||-------------")procenty% == 40 (set kreski="||||||||------------")procenty% == 45 (set kreski="|||||||||-----------")procenty% == 50 (set kreski="||||||||||----------")procenty% == 55 (set kreski="|||||||||||---------")procenty% == 60 (set kreski="||||||||||||--------")procenty% == 65 (set kreski="|||||||||||||-------")procenty% == 70 (set kreski="||||||||||||||------")procenty% == 75 (set kreski="|||||||||||||||-----")procenty% == 80 (set kreski="||||||||||||||||----")procenty% == 85 (set kreski="|||||||||||||||||---")procenty% == 90 (set kreski="||||||||||||||||||--")procenty% == 95 (set kreski="|||||||||||||||||||-")procenty% == 100 (set kreski="||||||||||||||||||||")kreski%procenty% == 100 (goto KONIEC) else (@goto PETLA)KONIEC@pause[/code]

(system) #6

Dzięki, nareszcie działa :D. Jeszcze raz dziękuję.