Ergebnis 1 bis 6 von 6
  1. #1
    Gesperrt
    Registriert seit
    17.09.2008
    Beiträge
    76

    Standard Batchen lernen leicht gemacht! Hier ein Tutorial von mir!!!!

    Mit diesem Tutorial kannst du lernen wie man richtig batcht.

    Erst einmal ein paar Fakten:

    Vorteile
    - Viele Befehle von Windows selbst
    - Viele Möglichkeiten mit Variablen und anderem zu programmieren

    Nachteile
    - Kein gutes Design



    Also fangen wir mit den wichtigsten Sachen an...





    1. Die Anfänge

    Jede Batch Datei wird im normalen WordPad geschrieben und mit der Endung .bat oder .cmd gespeichert. (Speichern unter > Name.bat / Name.cmd > Speichern)
    Am Anfang der Datei muss immer stehen:

    Code:
    @echo off
    Das gibt den Anfang der Datei an. Mit "@echo on" werden die Befehle angezeigt, was wir aber in den meisten Fällen
    nicht wollen.

    Mit

    Code:
    exit
    wird das Programm beendet und schließt sich.





    2. Text

    Mit dem Wort "echo" kann ein Text eingefügt werden. Das sieht z.B. so aus:

    Code:
    @echo off
    
    echo Dies ist dein Text.
    
    exit
    Angezeigt wird dann natürlich nur "Dies ist dein Text." der Rest bleibt unsichtbar.

    Aber wenn wir das Programm starten, würde das Fenster nur kurz erscheinen und sich sofort wieder schließen.
    darum schreiben wir noch das Wort "pause" unter den Text, damit das Programm wartet bis der User eine Taste
    drückt.

    Code:
    @echo off
    
    echo Dies ist dein Text.
    pause
    
    exit
    Tipp: Eine leere Zeile kann eingefügt werden, wenn du "echo." eingibst. (immer ohne die "" )





    3. Die Sprünge

    Eine BAT Datei liest die Befehle immer von oben nach unten der Reihe nach, aber da gibt es auch einen Trick.

    Man kann Bereiche markieren, indem man ":Name" schreibt. Alles was darunter steht gehört zu dem Bereich "Name".

    Code:
    @echo off
    
    :Teil1
    
    echo Dies ist ein Test,
    
    :Teil2
    
    echo um batchen zu lernen.
    pause
    
    exit
    Jetzt haben wir zwei Bereiche gemacht mit unterschiedlichem Text, was uns aber noch nichts bringt, da das Programm sowieso
    alles nach der Reihe liest.
    Darum gibt es den "goto-Befehl". Damit kann man zu verschiedenen Bereichen überspringen:

    Code:
    @echo off
    
    :Teil1
    
    echo Dies ist
    goto Teil3
    
    :Teil2
    
    echo ein
    
    :Teil3
    
    echo Test.
    pause
    
    exit
    Hier würde jetzt stehen "Dies ist Test.". Weil mit dem Befehl "goto Test3" springt das Programm automatisch
    zu dem Bereich "Test3" und lässt somit den Bereich "Test2" aus.

    Hier noch ein Beispiel:

    Code:
    @echo off
    
    :Teil1
    
    echo Dies ist
    
    :Teil2
    
    echo ein
    goto Teil1
    
    :Teil3
    
    echo Test.
    pause
    
    exit
    Dieses Programm würde nie enden, da es von "Teil1" auf "Teil2" geht und dann wieder wegen "goto Teil1" zu "Teil1"
    springt und das wiederholt sich andauernd.

    Tipp: Die Konsole kann man mit [STRG+TAB] sofort schließen.





    4. Variablen setzen


    Kommen wir zu dem etwas schwierigerem Teil, den aber auch jeder meistern kann.

    Mit "set [Variable]= [Eingabe]" kann man eine Variable definieren. Hier ein Beispiel:

    Code:
    @echo off
    
    set x= 2
    
    exit
    Dieses Beispiel ist auch noch sinnlos aber damit kann man z.B. so etwas machen:

    Code:
    @echo off
    
    :Teil1
    
    echo Die Variable x wird auf 1 gesetzt.
    set x= 1
    goto Teil3
    
    :Teil2
    
    echo Die Variable wird auf 2 gesetzt.
    set x= 2
    
    :Teil3
    
    echo Wenn die Variable nicht 2 ist dann gehts zu Teil2.
    if not %x%=="2" goto Teil2
    
    echo Fertig
    pause
    
    exit
    Das hier ist schon etwas komplexer. Folgendes passiert hier:

    - Erst steht da "Die Variable x wird auf 1 gesetzt."
    - Dann wird durch "set x= 1" dem X der Wert 1 zugefügt (kann man natürlich nach belieben ändern).
    - Jetzt wird durch "goto Teil3" zum Bereich "Teil3" gesprungen.
    - Dort steht "Wenn die Variable nicht 2 ist dann gehts zu Teil2."
    - Hier wird ein If-Satz verwendet (dazu kommen wir später) und es wird gefragt: wenn die Variable X nicht 2 ist, dann
    wird zu "Teil2" gesprungen. Und da dem X erst der Wert 1 zugeteilt worden ist, ist es eben nicht 2. Wenn es schon 2 gewesen
    wäre, würde er nicht zu "Teil2" springen.
    - In "Teil2" steht dann "Die Variable wird auf 2 gesetzt."
    - Jetzt wird durch "set x= 2" das X auf 2 gesetzt, wie am Anfang auf 1.
    - Es geht wieder zum "Teil3", da das Programm ja in der Reihenfolge arbeitet.
    - Das Programm fragt wieder ob X gleich 2 ist, was diesmal der Fall ist und es wird nicht zu "Teil2" zurückgesprungen.
    - Zum Schluss steht da "Fertig" und es wird geschlossen.


    Tipp: Mit z.B. "set /P x= " kann der User etwas eingeben und dann wird das Eingegebene der Variable als Wert zugeteilt, wie oben 1 und 2.



    WICHTIG: Wenn du einer Variable einen Wert zugeteilt hast (z.B. set x= Test) und du in einem Satz schreibst:

    Code:
    @echo off
    
    set x= Test
    
    echo Dies ist ein %x%.
    pause
    
    exit
    dann steht in dem Satz "Dies ist ein Test." Denn wenn man die Variablen in Prozenten einklammert (%Variable%) dann wird automatisch der
    angegebene Wert eingegeben. Das kann man auch in Befehlen machen.





    5. If-Sätze


    Mit If-Sätzen kann man gute Fragen formulieren, z.B. Ist das ein Test?

    Code:
    @echo off
    
    echo Ist das ein Test?
    echo [j]a, [n]ein
    set /P x= 
    
    if %x%=="j" goto Richtig
    if %x%=="n" goto Falsch
    
    :Richtig
    
    echo Die Antwort ist richtig.
    pause
    exit
    
    :Falsch
    
    echo Die Antwort ist falsch.
    pause
    exit
    Hier kann der User nun etwas eingeben. Vorgegeben ist "j" und "n" und es wird gefragt:

    Wenn die Variable x "j" ist, dann gehts zum Bereich Richtig und wenn es "n" ist zu Falsch. Dann endet das Programm.

    Tipp: Bei "echo [j]a, [n]ein" kann man beliebiges oder nichts reinschreiben.

    Das gleiche geht natürlich auch mit "not"

    Code:
    if not %x%=="j" goto Falsch
    Jetzt springt man immer zum Bereich "Falsch" außer man gibt "j" ein.





    6. Wichtige Befehle

    Code:
    CD
    CD ist der Befehl um das Verzeichnis zu wechseln
    change directory
    
    CHKDSK
    CHKDSK informiert über die Belegung der Platten
    check disk
    
    CLS
    CLS löscht den Bildschirminhalt
    clear screen
    
    COPY
    Dieser Befehl kopiert Dateien von "a" nach "b"
    COPY [Pfad]+[name.exe] nach [Pfad]
    Bsp.: COPY c:\test\test.exe a:\test2
    
    DATE
    Zeigt das eingestellte Datum tt.mm.jj
    
    DEL
    DEL [Pfad]+[name.exe] Befehl zum löschen
    deltree (löschen)
    
    DIR
    Zeigt den Inhalt des Verzeichnisses an
    DIR /P seitenweise, /W kurz
    directory
    
    ECHO
    Verzeichnis (C:\dos\) wird angezeigt oder nicht
    ECHO [on off] on= angezeigt off=nicht angezeigt
    
    ERASE
    ERASE gleiche Funktion wie DEL.Löscht Dateien.
    
    FIND
    Alle Dateien mit der angebenen Endung in dem Ver-
    zeichnis werden aufgelistet.
    z.B. DIR |FIND "EXE" 
    
    FORMAT
    Formatieren = Alle Daten werden gelöscht und
    Festplatte etc. wird gesäubert..
    FORMAT A: Diskette formatieren 
    FORMAT C: Festplatte C: formatieren
    FORMAT A: /4 ( 5 1/4" ) 
    FORMAT A: /S (Systemdisk. erzeugen)
    
    MD
    Befehl um ein neues Verzeichnis anzulegen.
    Bsp.: MD test (Verzeichnis test ist angelegt)
    make directory 
    
    MORE
    Listet angegebene Datei Seitenweise auf.
    z.B. TYPE test.exe |MORE 
    
    PATH
    PATH Pfad1;Pfad2;Pfad3
    Suchpfade
    
    PRINT
    Druckt angegebene Datei auf lpt1/2.
    z.B.: PRINT test.txt lpt1
    
    RD
    Löscht angegebenes Verzeichnis (muß leer sein)
    remove directory
    
    REN
    Umbenenen von Dateien.
    z.B.: REN datei1 datei2
    rename
    
    SORT
    Sortieren der Dateien im Verzeichnis
    z.B. DIR |SORT
    
    TIME
    Zeigt die Systemzeit an.
    Zeit hh:mm:ss 
    
    TYPE
    Listet eine ASCII-Textdatei auf.
    z.B.: TYPE test.txt (seitenweise mit |MORE)
    
    VER
    Zeigt die MS-DOS Versionsnummer an.
    
    VERIFY
    Verifizieren wenn Datein kopiert werden.
    z.B.: VERIFY ON (oder OFF)
    
    ASSIGN
    Laufwerk zuweisen
    z.B.: ASSIGN A=C (Umleitung auf C:)
    
    ATTRIB
    Lese/Schreibschutz 
    z.B.: ATTRIB [+R -R] [+A -A] [Pfad]+[test.exe]; 
    +R (Schreib-/Löschschutz) 
    +A Änderungsatribut setzen
    
    BACKUP
    Sicherungskopie erstellen von bestimmter Datei.
    BACKUP d:[Pfad][Test.exe] d:[/S][/M][/A][/D:tt.mm.jj]
    
    BREAK
    Ob auf Ctrl-Break reagiert werden soll oder nicht.
    z.B.: BREAK ON (oder OFF) 
    
    COMP
    Vergleicht zwei Dateien miteinander
    z.B.: COMP test1.exe text2.exe 
    
    DISKCOMP
    vergleicht zwei Disketten
    
    DISKCOPY
    Kopiert vollstandige Diskette.
    DISKCOPY a: c:
    
    EXE2BIN
    Wandelt *.exe in "*.com oder *.bin" um.
    EXE2BIN test.exe text.bat 
    
    GRAPHICS
    Dient dazu Grafiken in Dos auszudrucken.
    
    KEYB GR
    Wechseln der Tastaturbelegung
    z.B.: KEYB GR (oder US für Amerikanische Beleg.)
    
    MODE
    Betriebsmodus für Drucker etc.. wird angezeigt
    
    RECOVER
    Wiederherstellung von Dateien auf einer Diskette
    mit defektem Sektor (Repair Kit quasi)
    
    SYS
    Kopiern der Systemdatein auf Diskette
    z.B.: SYS d:
    
    TREE
    Auflisten eines Verzeichnisses + Dateien
    z.B.: TREE [d:] [/F]
    
    XCOPY
    Zum Kopieren von Gruppen von Dateien 
    z.B.: XCOPY C:\Test\ A: 
    
    EDLIN
    Das gleiche wie EDIT (Editor)

    Viel Spass

    Mit lieben Gruß,

    euer Cooler_Hacker.

  2. #2
    I ❤ HouseMusic Avatar von FormChanger
    Registriert seit
    11.08.2008
    Beiträge
    529

    Standard

    schön^^ also wenns von dir is haste ja schonmal griundlagen erklärt aber gehört das nicht in die sec sonst programmiersprachen??
    trotzdem thxx

  3. #3
    Citrix ♥ Avatar von inyourface
    Registriert seit
    30.07.2007
    Beiträge
    1.635

    Standard

    Schon gemächtes Tut. Ist halt gedacht für die Grundlagen. Perfekt für Beginner.
    Citrix Certified Expert - Virtualization (CCE-V)

    Zitat Zitat von Suicide Beitrag anzeigen
    13J0hn.X3r37

  4. #4
    I'm in ur VM. Avatar von l0dsb
    Registriert seit
    23.07.2007
    Beiträge
    1.038

    Standard

    Vorteile
    - Viele Befehle von Windows selbst
    - Viele Möglichkeiten mit Variablen und anderem zu programmieren

    Nachteile
    - Kein gutes Design
    Viele Befehle sind das nicht, es vereinfacht vieles aber, wenn man mit Kommandozeilentools oder automatisierter Dateiarbeit zu tun hat. Nachteile sind wenig Kontrolle, wenig Funktionen; das Ganze ist eben auf ein bestimmtes (kleines) Funktionsset limitiert. Wer über das Kopieren von Dateien hinaus etwas machen möchte, sollte dafür nicht Batch verwenden. Das wäre evtl. noch ein wichtiger Punkt bei den Nachteilen.

    aber gehört das nicht in die sec sonst programmiersprachen??
    Da Batch keine Programmiersprache ist, ist das hier schon richtig.
    I can haz RCE?

  5. #5
    Gesperrt
    Registriert seit
    09.07.2008
    Beiträge
    7

    Standard

    hast ja schon alle befehle erklärt, ist für anfänger sehr nützlich.

  6. #6
    Anfänger
    Registriert seit
    24.09.2008
    Beiträge
    20

    Standard

    Hier das sind aber net alle befehle^^ warum ahst du da net mit angegeben wie man eine hilfe zu den Befehlen bekommt? zB XCOPY hat doch sauf viele Parameter... das ist schon eußerst interessant was man dann damit so anstellen kann
    ~~Das ist eine Anti-Signatur~~

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •