Spisu treści:

Zaawansowana partia: 12 kroków
Zaawansowana partia: 12 kroków

Wideo: Zaawansowana partia: 12 kroków

Wideo: Zaawansowana partia: 12 kroków
Wideo: Szachy z Dawidem: "Partia włoska w 15 minut!" 2024, Lipiec
Anonim

ale to jest w porządku, po prostu użyj polecenia CD lub CHDIR, aby zmienić katalog. Ale w tym przypadku nie ma to większego znaczenia.", "top":0.08480565371024736, "left":0.014285714285714285, "height":0.8586572438162544, "width":0.9357142857142857}]">

Zaawansowana partia
Zaawansowana partia
Zaawansowana partia
Zaawansowana partia
Zaawansowana partia
Zaawansowana partia

PROSIMY O KIEROWANIE WSZELKICH PYTAŃ DO MOJEGO BLOGA: https://tamsanh.com/blog/2008/07/11/batch-tutorial-3-advanced-batch/ Nie odwiedzam już instrukcji, a otrzymasz szybszy odpowiedź w ten sposób. Hej chłopaki! Tutaj Tam Nguyen. Minęło dużo czasu, ale teraz jest! Przedstawiam wam kolejną część moich samouczków wsadowych! Być może (lub nie) przeczytałeś moje inne instrukcje: Podstawy wsadu Nieco bardziej zaawansowana wsadowa Ta instrukcja zapożycza niektóre elementy z pierwszych dwóch instrukcji. Mianowicie: ECHO CommandCD CommandDIR CommandJeśli nie przeczytałeś dwóch pozostałych, sugeruję przejrzenie tych poleceń w prawo-szybko. Poczekam tutaj. Ok! Pod koniec tego Instruktażu będziesz blisko: START CommandSET CommandIF CommandGOTO Commandand> i >> ParametryZa pomocą tych poleceń będziesz mógł tworzyć dynamiczne pliki wsadowe, które mogą się zmieniać w zależności od danych wprowadzonych przez użytkownika, twórz i rozwijaj. Więc otwórzmy ten dobry wiersz polecenia i zacznijmy! Uruchom -> cmdAlternatywnie możesz przejść do: Start-> Program Files-> Accessories-> Command Prompt Moje wyjaśnienia w tej instrukcji są trochę długie, więc podzieliłem niektóre polecenia na więcej niż jedną stronę, głównie ze względów estetycznych; Lubiłem oglądać zdjęcia podczas czytania tekstu bez konieczności przewijania w górę iw dół. Zasada przeglądania zdjęć; Zwykle po każdym fragmencie kodu pojawia się zdjęcie. Ciesz się!

Krok 1: Polecenie START

Polecenie START
Polecenie START
Polecenie START
Polecenie START
Polecenie START
Polecenie START
Polecenie START
Polecenie START

Polecenie START to ładne, małe polecenie, które uruchamia wszystko! Jest to proste polecenie i pomoże nam się rozgrzać, zanim przejdziemy do trudniejszych poleceń. Parametry polecenia są dokładnie takie, jakie myślisz.

ROZPOCZNIJ ThingToBeStarted.exeDość proste

URUCHOM WMPlayer.exeNie tylko możesz uruchomić plik.exe, możesz także wpisać stronę internetową, która otworzy się w domyślnej przeglądarce

START www. Instructables.comCałkiem proste, co? Ok. Przejdźmy teraz do prawdziwego mięsa Instructable: SET Command.

Krok 2: Polecenie SET - Teoria strun (1/4)

Polecenie SET - Teoria strun (1/4)
Polecenie SET - Teoria strun (1/4)
Polecenie SET - Teoria strun (1/4)
Polecenie SET - Teoria strun (1/4)

Polecenie SET: Definicja zmiennej. Ah. Zmienne. Ambrozja dewelopera. Zmienne to bity pamięci, które są… err, zmiennymi. Żadnych JEŻELI ORAZ I NIE! (Lol przepraszam). Ok! Więc jak działa to dziecko? Po prostu, parametry polecenia SET to:SET NazwaZmienna=Zmienna WartośćZestaw sam utworzy zmienne łańcuchowe.

SET TestVS=Testuj ciąg zmiennej!W tym przypadku po prostu zapisaliśmy wartość „Test Variable String!” do zmiennej TestVS. Cóż, to wszystko zabawa i gry, ale jak pobrać wartość zmiennej? Używamy %. Po prostu dodaj % wokół nazwy zmiennej

ECHO %TestVS%Ok fajnie, ale co jeszcze może zrobić?

Krok 3: Polecenie SET - Mr. Math (2/4)

Polecenie SET - Mr. Math (2/4)
Polecenie SET - Mr. Math (2/4)
Polecenie SET - Mr. Math (2/4)
Polecenie SET - Mr. Math (2/4)
Polecenie SET - Mr. Math (2/4)
Polecenie SET - Mr. Math (2/4)

Czy potrafi matematyka? Zróbmy prostą partię, aby to przetestować.

@ECHO OFFSET Test=1ECHO %Test%SET Test=%Test%-1ECHO%Test%PAUSECo się stało? To powinno zadziałać! Chwileczkę… o co chodziło z poleceniami SET tworzącymi tylko ciągi znaków? Tak. Samo polecenie SET utworzy tylko zmienną łańcuchową, co oznacza, że stworzy najbardziej dosłowną interpretację wartości. Nie myśli, że „1-1” równa się „0”, myśli, że „1-1” równa się „1 – 1.” Jak więc to zmienić? Chcemy, aby zmienna nie była bezpośrednio kopiowana, ale oceniana. Oznacza to, że chcemy zamienić go z ciągu znaków w wyrażenie! Bardzo łatwa zmiana, po prostu dodaj /a do polecenia SET. Oto prosty plik wsadowy, aby zobaczyć go w akcji, lub możesz po prostu wpisać go w podręczniku wiersza polecenia. Proponuję to drugie; jest znacznie szybszy, a kod nie jest zbyt skomplikowany, ale jeśli naprawdę chcesz plik wsadowy, oto on

@ECHO OFFSET /a Test=2+2ECHO %Test%PAUSEFantastyczny! Wyrażało to doskonale. Teraz wiemy, jakie zmiany należy wprowadzić w naszym „matematyce test.bat”

@ECHO OFFSET /a Test=1ECHO %Test%SET /a Test=%Test%-1ECHO %Test%PAUSEOk. Więc uruchommy to! Świetnie! Działało idealnie! Ale co dalej?

Krok 4: Polecenie SET - dane wprowadzane przez użytkownika (3/4)

Polecenie SET - wprowadzanie użytkownika (3/4)
Polecenie SET - wprowadzanie użytkownika (3/4)
Polecenie SET - wprowadzanie użytkownika (3/4)
Polecenie SET - wprowadzanie użytkownika (3/4)
Polecenie SET - wprowadzanie użytkownika (3/4)
Polecenie SET - wprowadzanie użytkownika (3/4)

SET ma również możliwość monitowania użytkownika o wprowadzenie danych. Dodając /p do parametrów SET, przekształca go z normalnego ustawiacza zmiennych w ustawiacz zmiennych kontrolowanych przez użytkownika.

USTAW /p UDefiniuj=Z /p program faktycznie zatrzymuje się i czeka na dane wejściowe użytkownika. Ale czekaj, nie widzę parametru /a, czy to oznacza, że zmienna jest tylko ciągiem? /p parametrów całkowicie neguje /a, a jeśli spróbujesz, po prostu otrzymasz błąd Missing operand. Oznacza to, że zmienna zdefiniowana przez użytkownika nie będzie w stanie ocenić wyrażeń. Więc co można zrobić? Cóż, oto podstępna sztuczka, o której pomyślałem, że możemy jej użyć. Polecenie SET nie wszystkie jednoczesne użycie parametrów /p i /a, prawda? A co z sekwencyjnym użyciem parametrów /ai /p? Ahhh… ty chytre buty

@ECHO OFFECHO Kalkulator Wersja 1.0ECHO. SET /p UDefine=SET /a UDefine=%UDefine%ECHO =ECHO %UDefine%ECHO. PAUSEFajny kalkulator, który tam masz. Jeśli jeszcze tego nie rozgryzłeś, {{{ECHO.}}} to pusta linia. Czy to nie jest fajne?

Krok 5: Polecenie SET - więcej niż na pierwszy rzut oka (4/4)

Polecenie SET - Więcej niż na pierwszy rzut oka (4/4)
Polecenie SET - Więcej niż na pierwszy rzut oka (4/4)
Polecenie SET - Więcej niż na pierwszy rzut oka (4/4)
Polecenie SET - Więcej niż na pierwszy rzut oka (4/4)
Polecenie SET - Więcej niż na pierwszy rzut oka (4/4)
Polecenie SET - Więcej niż na pierwszy rzut oka (4/4)

W tym momencie może się wydawać, że zmienne polecenia SET są dobre tylko dla łańcuchów i wyrażeń. Nie prawda. Zmienne są w rzeczywistości bardzo elastyczne i nie ograniczają się tylko do ECHO. Czy próbowałeś po prostu wpisać samą zmienną?

SET Test = Instruktaż% Test%Co za dziwny błąd… mówi, że polecenie „Instruktaż” nie jest rozpoznawane, a nie, że %Test% nie ma składni. Oznacza to, że DOS traktuje każdą zmienną tak, jakby została wpisana ręcznie. Cóż, co jeśli

SET Test=START cmd.exe%Test%Niesamowite! Zadziałało! DOS traktuje każdą zmienną tak, jakby została wpisana przez użytkownika i odpowiednio ją uruchamia. Oto ciekawy kod: (Wystarczy Kopiuj/Wklej; to trochę nudne.

@ECHO OffSET Variable1=ECSET Variable2=HSET Variable3=O CSET Variable4=ooSET Variable5=l!ECHO %Variable1%%Variable2%%Variable3%%Variable4%%Variable5%ECHO.%Variable1%%Variable2%%Variable3%%Variable4% % Zmienna5% PauzaCzy to nie fajne? Każda zmienna zawiera dwie litery całej wiadomości (z wyjątkiem Variable2), a układając zmienne w kolejności, każda litera sumuje się i kończy całe polecenie ECHO Cool! Polecenie SET jest jednym z bardziej skomplikowanych i potężnych poleceń Słownik DOS.

Krok 6: Polecenie IF - wszyscy są równi (1/2)

Polecenie JEŻELI - Wszyscy są równi (1/2)
Polecenie JEŻELI - Wszyscy są równi (1/2)
Polecenie JEŻELI - Wszyscy są równi (1/2)
Polecenie JEŻELI - Wszyscy są równi (1/2)
Polecenie JEŻELI - Wszyscy są równi (1/2)
Polecenie JEŻELI - Wszyscy są równi (1/2)

Ten klasyczny argument warunkowy. Podstawowe, ale potężne mimo wszystko. Dla tych, którzy nigdy wcześniej nie programowali, polecenie IF jest dokładnie tak, jak brzmi. Jeśli wyrażenie w składni okaże się prawdziwe (lub NIE prawdziwe), zostanie wykonana następna sekwencja poleceń. Podstawowy wiersz poleceń wygląda tak:

IF %zmienna1%==%zmienna2% ECHO Ta część jest wykonywanalub jeśli masz więcej niż jedną składnię

@ECHO OFFIF %zmienna1%==%zmienna2% (ECHO Ta część jest wykonywana. ECHO Więc to jest.) ELSE (ECHO Jeśli zmienna 1 nie&apost = zmienna 2, to się dzieje. ECHO i tak też się dzieje.)Uwaga: osobliwe umieszczanie nawiasów nie wynika z tego, że nie wierzę w zorganizowany kod, ale dlatego, że jeśli nie ma ich w tych miejscach, cały fragment IF nie będzie działał. Tak więc, jeśli jest jakiś błąd w twoim kodzie IF, najprawdopodobniej jest to spowodowane nawiasem. Aby uruchomić tę konkretną partię, faktycznie użyłem samego wiersza polecenia, dzięki czemu mogłem ustawić zmienne bez konieczności edytowania wielokrotności IfVariableTest.bat czasy.

Krok 7: Polecenie IF - ale jestem od ciebie większy (2/2)

IF Command - Ale jestem od ciebie większy (2/2)
IF Command - Ale jestem od ciebie większy (2/2)
IF Command - Ale jestem od ciebie większy (2/2)
IF Command - Ale jestem od ciebie większy (2/2)
IF Command - Ale jestem od ciebie większy (2/2)
IF Command - Ale jestem od ciebie większy (2/2)

Ok, więc masz ładną instrukcję IF iw ogóle, a sprawdzanie, czy zmienne są równe, czy nie, jest fajne iw ogóle, ale nie do końca pasuje. Chcę, żeby coś się wydarzyło, jeśli zmienna1 jest mniejsza niż druga zmienna!Dla tych z nas, programistów, wiem, że wydaje się to prostym zadaniem. Po prostu rób to, co robią wszystkie inne języki programowania! Dobrze trzymaj swoje konie kowbojem. Nie tak szybko. Plik wsadowy to nie tylko zwykły język programowania. Choć może się to wydawać głupie, „” nie działają z plikami wsadowymi.

EQU - równe - ==NEQ - nie równeLSS - mniejsze niż GTR - większe niż LEQ - mniejsze lub równe ToGEQ - większe lub równePo prostu umieść te operandy w miejscu ==Przykład

JEŚLI 32 GTR 3 ECHO to zadziała

@ECHO OFFIF 32 GEQ 32 (ECHO 32 jest większe niż 32) INACZEJ (ECHO 32 jest zdecydowanie równe 32) PAUSEIF 32 LSS 32 (ECHO 32 jest mniejsze niż 32? Myślę, że nie.) INACZEJ (ECHO 32 jest zdecydowanie równe 32) Nie mniej niż 32. Koniec historii.)PAUZA

Krok 8: Idź do polecenia

Idź do polecenia
Idź do polecenia
Idź do polecenia
Idź do polecenia
Idź do polecenia
Idź do polecenia

Dowództwo GOTO. Robi dokładnie to, co mówi; przechodzi do etykiety w skrypcie pliku wsadowego. Aby użyć tego polecenia, musisz najpierw mieć etykietę. Etykiety wyglądają tak:

:Etykieta1Jest to po prostu dwukropek przed ciągiem liter i/lub cyfr bez odstępów. Polecenie GOTO ma taką strukturę

Przejdź do etykiety1To jest takie proste! Pomyśl o tym, nie jestem do końca pewien, dlaczego nie umieściłem tego w Nieco zaawansowanej partii. W każdym razie tego polecenia można użyć do powtórzenia pliku wsadowego, po prostu GOTO etykietę, która ponownie wykonuje polecenie GOTO

@ECHO OFF:RepeatMeECHO To będzie powtarzane, chyba że naciśniesz "CTRL-C"GOTO RepeatMeNawiasem mówiąc, plik wsadowy mówi prawdę. CTRL-C to uniwersalna pauza i monit o zakończenie. CTRL-S to po prostu Pauza. Ale zamknięcie okna działa równie dobrze. GOTO może również pominąć lub zmienić kolejność kodu

GOTO TurnEOffGOTO MultipleGotoECHO To ECHO zostanie pominięte.:MultipleGotoGOTO 3:ENDPAUSEEXIT:1ECHO The EndGOTO END:3ECHO To będzie wyświetlane jako pierwszeGOTO 2:TurnEOff@ECHO OFFGOTO MultipleGoto:2ECHO To jest drugie, nawet jeśli jest ostatnie w kodzie. GOTO 1Powyższy kod został celowo skonstruowany w sposób mylący, aby podkreślić zdolność GOTO do skakania po kodzie.

Krok 9: > Parametr (1/2)

Przykładowa implementacja
Przykładowa implementacja
Przykładowa implementacja
Przykładowa implementacja
Przykładowa implementacja
Przykładowa implementacja
Podsumowanie: Uwagi końcowe
Podsumowanie: Uwagi końcowe

Polecenie>Nazwa plikuOk, załóżmy, że jesteśmy w określonym katalogu. Następnie używamy polecenia DIR, które, jeśli czytasz Podstawy wsadowe, wiesz, że pokazuje zawartość twojego bieżącego katalogu

C:\Użytkownicy\Neo\>KATALOGNormalnie wyjdzie?

Wolumin na dysku C to numer seryjny woluminu HP to BC7E-E26C Katalog C:\Użytkownicy\Neo2007-30-06 11:14 AM.2007-30-06 11:14 AM..2007-17-03 18:41.idlerc 19.02.2007 15:14 Kontakty 19.06.2007 22:44 Pulpit 29.06.2007 08:47 Dokumenty 19.06.2007 10:35 Pobieranie 19.02.2007 15:14 Ulubione19.02./ 2007 15:14 Linki 12.05.2007 16:01 Muzyka30.06.2017 01:20 Zdjęcia 07.04.2007 15:08 Zapisane gry 19.02.2007 15:14 Wyszukiwania01.03.2007 07:23 PM 242, 947 Test Record.wma 19.06.2007 10:39 Filmy 18.06.2007 09:57 1, 324, 574 wp_screenprint_mc.pdf 18.06.2007 09:59 73, 996, 533 wp_tshirt_full.mp4 4 Plik(i) 75, 564, 054 bajty 14 Katalog(i) 132, 927, 537, 152 bajty wolneAle jeśli dodamy > i do tego

C:\Użytkownicy\Neo\DIR>DIRContents.txtNie otrzymujemy danych wyjściowych, ale zamiast tego otrzymujemy zupełnie nowy plik tekstowy o nazwie DIRContents.txt, który zawiera dane wyjściowe! Fajnie! Ale czekaj, jest problem! Chcę mieć wiele wyjść w tym samym pliku, ale moje > po prostu nadpisuje je i nie dodaje! Co ja robię?

Krok 10: >> Parametr (2/2)

DIR>>DIRContents.txtSchludny! Działało idealnie! Więc poczekaj. Czy to oznacza, że mogę zapisać wszystko, co chcę w pliku tekstowym? Chcę tego spróbować

Wiązka jest niesamowita>Awesome.txtCo? Dlaczego to nie zadziałało? Dzieje się tak, ponieważ parametr zapisuje tylko dane wyjściowe uzasadnionych poleceń, a nie tylko wszystko, co wpisujesz. Ale jest to problem, który jest po prostu rozwiązany. Pamiętaj, że parametry rejestrują dane wyjściowe poleceń. Jakie polecenie ma wyjście, które możemy kontrolować? Zgadza się! Dowództwo ECHO

ECHO Partia Jest Niesamowita>Niesamowity.txtECHO Bardzo się cieszę, że to znam.>>Niesamowity.txtTak! Pamiętać. >> dodaje Output do następnego wiersza pliku.

Krok 11: Przykładowa implementacja

Ok. Więc zbierzmy to wszystko razem! Oto kilka przykładowych kodów, które stworzyłem, używając poleceń, które pokazałem w tej instrukcji. Ten kod będzie stale dodawał 1 do zmiennej i wyświetlał wynik w nieskończoność.

@ECHO OFFSET /a num=1:RepeatECHO %num%SET /a num=%num%+1GOTO PowtórzTen kod uruchomi CMD.exe 5 razy

@ECHO OFFSET /a RepeatNum=5:OpenIF %RepeatNum%==0 GOTO EndSTART CMD.exeSET /a RepeatNum=%RepeatNum%-1GOTO Open:EndTen kod utworzy plik wsadowy w C:\Users\Neo i uruchomi go

@ECHO OFFCHDIR C:\Users\NeoECHO @ECHO OFF>Hello.batECHO ECHO Hello!>>Hello.batECHO ECHO I&aposm na dysku C!>>Hello.batECHO PAUSE>>Hello.batC:\Users\Neo\Hello. batPauzaTo jest mała partia gry. Musisz odgadnąć liczbę

@ECHO OFFSET /a GuessNum=0SET /a Answer=%RANDOM%ECHO Zgadnij, o jakiej liczbie myślę.:RetrySET /p Guess=IF %Guess% LSS %Answer% ECHO Moja liczba jest wyższa. IF %Guess% GTR %Answer % ECHO Mój numer jest niższy. IF %Guess%==%Answer% GOTO ENDECHO. SET /a GuessNum=%GuessNum%+1GOTO Spróbuj ponownie:ENDECHO Masz rację! Odpowiedzią było %Answer%ECHO Zajęło to %GuessNum% Guesses. ECHO. PAUSEA ten bardzo mi się podoba. Jeśli jednak nie jesteś ostrożny, może to wymknąć się dość szybko, w zależności od możliwości twojego komputera. To, co robi ten plik, to tworzenie w nieskończoność ponumerowanych plików tekstowych w katalogu o nazwie lolnumbers. Każdy z tych plików tekstowych zawiera DIR katalogu lolnumbers. Chodzi o to, że katalog jest coraz pełniejszy z plikami tekstowymi, więc każdy kolejny plik tekstowy jest większy niż poprzedni. Rezultatem tego jest folder, którego łączny rozmiar z każdą sekundą staje się coraz większy

@ECHO OFFSET /a num=1MKDIR lolnumbersCD lolnumbers:RestartDIR>%num%.txtSET /a num+=1GOTO RestartTo są dość podstawowe kody. Eksperymentuj z nimi do woli.

Krok 12: Wnioski: Uwagi końcowe

Uff. Dużo omówiliśmy w tej instrukcji. Ten jest w rzeczywistości 3 razy dłuższy niż mój ostatni. Mam nadzieję, że Ci się spodoba! Jeszcze tylko kilka przypomnień, zanim pójdę. Pamiętaj:Ustawiając zmienną, nigdy nie umieszczaj spacji między zmienną a jej wartością. TAK:

SET zmienna1=WartośćDodatkowa spacja spowoduje, że zmienna będzie pusta. NIE

SET zmienna1 = WartośćRównież wiele IF. Pamiętaj, aby poprawnie sformatować nawias: TAK

JEŻELI 1==1 (ECHO jeden równa się jeden!) ELSE (ECHO Coś może być nie tak z tym programem.)NIE

IF 1==1(ECHO jeden równa się jeden!)ELSE(ECHO Coś może być nie tak z tym programem.)Są też wbudowane zmienne

%CD%%DATE%%TIME%%RANDOM%%CD% Rozwija do bieżącego katalogu. Zasadniczo ścieżka za pierwszymi >%DATE% i %TIME% to Data i godzina.%RANDOM% daje losową liczbę z zakresu od 0 do 32767. Zakresu nie można zmienić, nie sądzę. I to w zasadzie to! Mam nadzieję, że podobała Ci się ta instrukcja, naprawdę ciężko nad nią pracowałem. Mam nadzieję, że nadrobi to 10-miesięczną nieobecność. Teraz zła wiadomość. W ciągu najbliższych kilku miesięcy będę miał trochę problemów z odpowiedzią na pytania, ponieważ będę poza krajem. Ale jeśli masz pytanie, zostaw komentarz każdemu. Jeśli uzyskam dostęp do komputera, na pewno odpowiem, ale nie sądzę, żeby to było konieczne; Instructables to przyjazna społeczność i jestem pewien, że ktoś tam pomoże ci w twojej sytuacji.

Zalecana: