#23751192 · 31 Jan 2011, 15:39 · · პროფილი · პირადი მიმოწერა · ჩატი
საქმე იმაშია რომ ამ ბრძანებებში გაჩერება ან პროგრამის დამთავრება არსად არ გიწერია.
bat ში რომ არის :1 და :2 ეს არ ნიშნავს რომ იქ მარტო იმ შემთხვევაში მივა როცა goto ს გამოიყენებ. მაგ ადგილზე მისვლის 2 ვარიანტია, 1) goto 2) თანმიმდევრობით პროგრამა რომ გაყვება და მაგ ეტაპზე მივა მაგასაც შეასრულებს.
აქ კი საქმე იმაშია რომ როცა ნახულობს გადადის :1 ზე (goto 1) და 1 ის მერე არაფერი აყოვნებს რაც იწვევს მეორეს გავლასაც, ანუ ქმნის მეორესაც. ხოლო თუ ვერ იპოვა მიდის :2 ზე (goto 2) და შესაბამისად 1_ს უკვე გადაახტა და უკან არ დაბრუნდება ბრძანების გარეშე.
ხოდა აქ ასე გირჩევ მე
CODE | if exist %systemroot%\test.txt (goto 1) else (goto 2)
:1 md %temp%\1 goto :EOF :2 md %temp%\2 goto :EOF |
goto :EOF ამ ბრძანებით იმ ბატ ფაილს დაასრულებს.
თუ call ით გაქვს გამოძახებული იმ გამოძახებულს დაასრულებს და საიდანაც გამოიძახე ის გააგრძელებს მუშაობს. თუ goto :EOF ს ნაცვლად ჩაწერ exit ს მაშინ იქაც არ გააგრძელებს და საერთოდ შეწყვეტს მუშაობას.
|