Batch-Skript(Crashkurs) Was ist ein Batch-Skript(Stapelverarbeitungsdateien)? Mit Batch Skripten kannst du ganz easy Abläufe am Computer automatisieren. Wenn Du z.b. kein Bock hast immer den selben Ablauf von Klicks und so weiter zu machen, nutzt du Batch-Skripte... in diesem Tutorial, bekommst Du mal einen kleinen Einblick wie das so abläuft!!! Ach ja Stapelverarbeitungsdateien, weil es ein Stapel von Befehlen sind die das Skript ausführt! Was brauche ich? Ganz einfach: Text Editor(Notepad nicht Word oder so was!) Man, hoffe du hast viel Geld um dir all diese Dinge zu besorgen ;) Wenn du dein Skript fertig hast, speicherst du es als.bat ab. Wenn du nun drauf klickst, erscheint kurz die Konsole und verschwindet wieder...um dies zu vermeiden gehst du auf Start/Ausführen und gibst dort cmd ein und drückst Enter. Nun schiebst du deine erstellte.bat in das Fenster und drückst Enter! Fertig. Oder du setzt ein pause ans ende der Datei. Die Befehle sind nicht casesensitive, also das heißt du kannst sie groß und klein schreiben. Mit nem ; wird ein Kommentar eingeleitet, alles was danach kommt wird ignoriert( alles was hinter dem ; in einer Zeile steht). und nochwas: Die Befehle werden von Oben nach unten ausgeführt, also der Reihe nach. Befehle?Wie geht das nun? Erstmal überlegst du dir etwas, was sich automatisieren lässt, z.b. das öffnen mehrerer Programme die du alle zum arbeiten brauchst... hier mal der Code dazu: @ECHO OFF CLS start NOTEPAD.exe start CALC.exe so, was bedeutet das jetzt alles???? Ganz einfach: @ECHO OFF Das bedeutet, dass die Befehle nicht angezeigt werden, die nun folgen, wäre das nicht vorhanden, würde man alle Vorgänge in der Konsole sehen können, aber hiermit werden diese nicht angezeigt! CLS Löscht den Screen der Konsole, warum ist das nötig? Ist es nicht, sieht aber schöner aus...hier mal ein Beispiel warum: In der Konsole stehen nach ner Zeit viele Daten...z.B.:
Verzeichnis von E:\ 13.06.2006 12:07 1.885 Admin_verarbeitung.php 13.06.2006 13:33 <DIR> AdvancePages 12.06.2006 20:23 <DIR> Musik 13.06.2006 10:00 2.584 Post.php 2 Datei(en) 4.469 Bytes 2 Verzeichnis(se), 74.014.699.520 Bytes frei C:\Dokumente und Einstellungen\MudSucker>dir E: Volume in Laufwerk E: hat keine Bezeichnung. Volumeseriennummer: 74D1-67E4 Verzeichnis von E:\ 13.06.2006 12:07 1.885 Admin_verarbeitung.php 13.06.2006 13:33 <DIR> AdvancePages 12.06.2006 20:23 <DIR> Musik 13.06.2006 10:00 2.584 Post.php 2 Datei(en) 4.469 Bytes 2 Verzeichnis(se), 74.014.699.520 Bytes frei C:\Dokumente und Einstellungen\MudSucker> Mit CLS Wäre das alles nach dem ausführen verschwunden! start NOTEPAD.exe Der eigentliche Befehl hier ist start. Start öffnet ein Programm dessen Pfad man dort angibt, hier ist es NOTEPAD.exe (Sprich der Editor) man könnte auch C:\Programme\KillerProgramm\UltimateHackerTool.exe angeben, ist das Programm vorhanden wird es ausgeführt! das selbe gilt für start CALC.exe Was für Befehle gibt es denn noch? Klaro, hier mal ein paar Befehle die immer nützlich sein könnten ;) pause - wartet einen beliebigen Tastendruck ab, bis die nächsten Befehle ausgeführt werden xcopy <Quellpfad> <Zielpfad> /D /E /Y /I - Mit xcopy kannst du eine Sicherung erstellen, selbst von mehreren Daten...z.B. bist du der Meinung, das deine Festplatte A bald abkackt, Du hast aber jetzt kein Bock alle wichtigen Daten zusammen zu suchen... aber da dir fällt ein, dass du ein Batch Skript gemacht hast, was das für dich erledigt...wie? Tja, du hast mit xcopy die bestimmten Ordner in denen die Daten liegen bestimmt, und führst diese Batch einfach aus... hier ein Beispiel: xcopy c:\programme\winamp d:\backup /E /Y /I
Jetzt werden alle Datei aus c:\programme nach d:\backup kopiert!!! Die müssen angegeben werden, falls der Pfad zu lang ist...also am besten immer! Die Buchstaben mit einem / sind optional!(auch parameter genannt) /D -Wird dieser Parameter angegeben werden nur neue Dateien kopiert /E - Auch Unterverzeichnisse nach Datei durchsuchen und kopieren /Y - Überschreiben, wenn sie bereits existieren /I neuen Ordner anlegen, wenn der angegebene nicht existiert! /exclude Setze das nach ganz hinten... und zwar so: xcopy c:\programme\winamp d:\backup /E /Y /I /exclude:dontcopy.txt Jetzt brauchst du noch eine Datei die nocopy heißt( kannst aber auch anderen Namen wählen) in der alle Dateinamen stehen die nie kopiert werden sollen, der Inhalt sollte in etwa so aussehen: Programme.exe.txt Jetzt werden keine Ordner die Programme heißen kopiert und keine Dateien mit der Endung.txt und.exe!!!! Praktisch, so kann man Müll bei der Sicherung vermeiden ;) set var Hier kannst du einer Variablen einen Wert zuweisen: set var=hallo set var2=du da echo %var% %var2% Hier werden 2 Variablen erstellt mit set...der Name der ersten ist var und der zweiten ist var2. Beiden wird ein Wert( genauer gesagt ein String) zugewiesen. mit echo kannst du den Inhalt dieser Variablen in der Konsole ausgeben lassen. Probier es aus;) nutze aber am Anfang und cls. ------Man kann variablen auch Zahlen zuordnen!!!!------------- Bei Windows gibt es schon vorgesetzte Variablen, die einen bestimmten Pfad enthalten(umgebungsvariablen), dass ist sehr nützlich um z.b. Viren zu schreiben die sich in den Autostart Ordner nisten...gehe auf start/ausführen und gibt cmd ein und drücke Enter. Jetzt gib set ein und drücke Enter und dir werden alle aufgelistet... Hier ein Beispiel, warum man davon Gebrauch machen sollte: Ich wette du hast windoof auf c: Installiert...gut denkt man sich...lass ich mein Batch-Skript sich selbst in den Autostart Ordner tun und du gibst folgenden CODE ein: del C:\Programme\ ; Mal davon ausgegangen, das es wirklich zu 100% klappt den ; Ordner zu löschen ;)
so, du schickst das Teil jemanden, er führt es aus aber nix passiert -.- tja, er hat Windoof auf d: installiert, dazu benötigen wir jetzt eine Variable die von Windows festgelegt wird z.b. ProgramFiles, diese enthält den tatsächlichen Pfad zu den Ordner Programme. Fertig ;) del ProgramFiles ; Mal davon ausgegangen, das es wirklich zu 100% klappt den ; Ordner zu löschen ;) :Start - goto Setzt einen Spring point... wenn man jetzt irgendwo im Code goto Start schreibt, wird der Code ab dieser Stelle ausgeführt: cls :start ; Setzen eines Spring Punktes! kann man auch Mutter oder Arschloch nennen, der goto- ; Befehl muss dann halt auch dementsprechend sein! echo. ; Fügt eine Leerzeile ein echo MudSucker echo. pause goto start ; Jetzt geht er zum Spring Punkt start echo ist cool ; Das hier wird nie ausgeführt, weil er vorher immer wieder auf das goto stößt Hiermit haben wir eine Endlosschleife gemacht! IF Bedingungen If <Bedingung> <Befehl>, gut um z.b zu gucken ob eine Datei existiert: if exist %datei.txt goto springen echo Datei nicht gefunden! goto ENDE :springen echo die Datei existiert! Wenn nun eine Datei namens datei.txt existiert, wird die Datei existiert! ausgegeben, andererseits wird Datei nicht gefunden! ausgegeben. Also wenn die Bedingung nicht gegeben ist, wird der Befehl nicht ausgeführt, der danach kommt! shutdown Ich glaube der beliebteste Befehl: %SYSTEMROOT%\system32\shutdown.exe -s -t 0
Das fährt nun den PC herunter ;) SOOOOOOOOOOOOOO ich glaube das reicht, das Prinzip müsste verstanden worden sein...demnächst folgt eine kurze, aber sichere Befehls Referenz. Das hier war nur ein Einblick ;) Wer dringend weiter suchen muss, der besucht www.google.de M F G MudSucker