Re: Bat - dziwne zachowanie

Autor: Budzik <budzik61_at_poczta.o.n.e.t.pl.nie.spam.oj>
Data: Fri, 5 Apr 2013 21:58:13 +0000 (UTC)
Message-ID: <05042013.157CE951@budzik61.poznan.pl>
Content-Type: text/plain; charset=iso-8859-2

Osobnik posiadający mail budzik61_at_poczta.o.n.e.t.pl.nie.spam.oj napisał(a) w poprzednim odcinku co następuje:

>>> Dlaczego tak się dzieje? Bo tak. Ktoś widocznie uznał, że to ma być
>>> skok poza strukturą/kontekstem i kończyć działanie pętli. Zamiast
>>> GOTO możesz spróbować użyć CALL. Jako skok do podprocedury, a więc
>>> instrukcja strukturalna, powoduje zachowanie kontekstu pętli. Z tym,
>>> że podprocedura, to nie jest do końca to, czego potrzebujesz. Możesz
>>> spróbować użyć kolejnego fora, np. in (1,1,1) i w nim dopiero
>>> umieścić if i goto, może wtedy wyjdzie tylko z tej wewnętrznej pętli.
>>> Albo przepisz te swoje skrypty na PowerShell i nie będziesz musiał
>>> się męczyć z takimi kruczkami cmd.exe.
>>>
>>
>> dzięki Grzegorz, spróbuje z tym dodatkowym forem bo o tym w sumie nie
>> pomyślałem.
>>
> For w forze nie pomógł, ale pomogło przepisanie felernego fragmentu do
> innego pliku bat i wywołanie go z bata głównego.
> Wszystko smiga az miło.
> Dzięki za podpowiedź.

a jednak nie...
Przy takiej konstrukcji bat po wyjściu z pętli for konczy działanie,
zamiast wykonywac kolejne instrukcje. A ze ostatnia instrukcja jest %0 to
dodatkowo nie uruchamia ponownie całego bata.
A jeszcze z dodatkowych dziwnych zachować - zapomina o ustawionym echo off
i po kazdym odwolaniu do innego bata trzeba echo off dac od nowa.

A jest jakis inny sposób cofania się?
Cos w stylu repeat until albo modyfikacja zmiennej sterującej pętlą for?

-- 
Pozdrawia... Budzik
b_ud_zi_k_6_1 na poczta kropka onet kropka pl  (adres antyspamowy, usuń także "_")
"Obdarowany mówi dziękuję,
a w duchu myśli - jeleń!"  Richard Fish
Received on Sat 06 Apr 2013 - 00:05:02 MET DST

To archiwum zostało wygenerowane przez hypermail 2.2.0 : Sat 06 Apr 2013 - 00:42:00 MET DST