Startseite   |  Site map   |  A-Z artikel   |  Artikel einreichen   |   Kontakt   |  
   
  •  
    Biologie
    Themen der Chemie
    Deutsch online artikel
    Englisch / Englische
    Franzosisch
    Geographie
    Geschichte
    Informatik
    Kunst
    Mathematik / Studium
    Musik
    Philosophie
    Physik
    Recht
    Sport
    Wirtschaft & Technik



    Biographie

    Impressum

informatik artikel (Interpretation und charakterisierung)

Parameter in batch files


1. Java
2. Viren



Mit dem Aufruf eines Batch Files können vom DOS Prompt auch Parameter übergeben werden. Wenn man den Inhalt eines Verzeichnisses anzeigen möchte, ohne sich jedoch in diesem Verzeichnis zu befinden, so muß man einen Parameter angeben. Parameter werden beim Aufruf an den Programmnamen angefügt und mit aufsteigender Reihenfolge als %1, %2, %3 usw. bezeichnet. Greifen wir auf Bsp.1 zurück:

Bsp.1b: (D.BAT)

dir %1 %2 /p /o /a


---Monitor---
C:\\> d c:\\dos --- "c:\\dos" ist Parameter 1 und wird als %1 angesprochen
C:\\> dir c:\\dos /p /o /a --- %2 ist nicht angegeben und wird weggelassen

[Auflistung aller Dateien im Verzeichnis C:\\DOS]


C:\\> --- D.BAT beendet

---Monitor---

So kann man aus einem beliebigen Verzeichnis den Inhalt eines anderen Verzeichnisses abfragen, ohne dorthin wechseln zu müssen.

Bsp.2: (XC.BAT)

@echo off
if %1!==! goto ende --- falls kein Parameter 1 angegeben wurde, wird abgebrochen

if %2!==! goto ende --- falls kein Parameter 2 angegeben wurde, wird abgebrochen
xcopy %1 %2 /v /s /e

:ende

Mit diesem Batch (XC.BAT) wird der DOS Befehl "xcopy" benutzt, um Dateien oder Verzeichnisse zu kopieren. Es werden an den Befehl noch die Parameter /v /s und /e angehängt, die bewirken, daß alle Dateien überprüft werden und auch alle Unterverzeichnisse kopiert werden. Ein weiterer Vorteil dieses Batch Files ist, daß "xcopy" nun einfach durch "xc" abgekürzt wird.
Die Abfrage "if %1!==! goto ende" bewirkt, daß falls kein Parameter (%1) angegeben wurde (%1! = !), zum Sprungziel "ende" gesprungen wird.


---Monitor---
C:\\DOS> xc *.* a:\\ --- alle Dateien (mit Unterverzeichnissen) auf A: kopieren

[Auflistung der kopierten Dateien] --- diese Auflistung kann sich über mehrere Seiten erstrecken


C:\\DOS> --- Batch File beendet

---Monitor---

Das ">" Zeichen
Um zu verhindern, daß alle Dateien, die kopiert wurden aufgelistet werden, muß man ">nul" an den "xcopy" Befehl anhängen. Dadurch wird die Anzeige ins Datennirvana umgeleitet und nicht am Monitor ausgegeben.
Zusätzlich kann man noch eine Fehlerprüfung einbauen, die eine Meldung ausgibt, falls ein Fehler beim Kopieren aufgetreten sein sollte. Dies ist von Vorteil, da man ja die Fehlermeldungen jetzt auch nicht mehr sehen kann.

Bsp.2a: (XC.BAT)

@echo off
if %1!==! goto ende

if %2!==! goto ende
echo Kopiere Dateien und Unterverzeichnisse... --- Meldung, die Ausgegeben wird

xcopy %1 %2 /v /s /e >nul
if errorlevel 1 goto error --- Falls xcopy den Errorlevel 1 zurückgibt, wird zur Fehlermeldung gesprungen
goto ende --- Fehlermeldung übergehen und zum Ende des Batch Files springen.
:error

echo FEHLER BEIM KOPIEREN AUFGETRETEN!

:ende

Das ">" Zeichen kann auch benutzt werden, um Daten an den Drucker zu senden (LPT1).
Um die Autoexec.bat mit Hilfe eines Batch Files und dem type Befehl auszudrucken, müsste das Batch File so aussehen: (Vorausgesetzt, der Drucker ist an LPT1 angeschlossen)
@type c:\\autoexec.bat >lpt1
Um eine einzige Zeile ausdrucken, kann man den bekannten echo Befehl benutzten:
@echo Das ist ein Probeausdruck. >lpt1
Weiters kann man natürlich auch an COM1 und COM2 Befehle senden.
Um zB das Modem an COM2 zurückzusetzten (Modem Befehl: ATZ), muß man folgendes Bat erstellen:

@echo ATZ >com2
Natürlich können alle diese Befehle auch direkt aus dem DOS Prompt (C:\\>) eingegeben werden, aber falls man sie öfters braucht, ist es sinnvoll diese in ein Batch File zu schreiben, um sich mühsame Tipparbeit zu ersparen.
Um hier den Nutzen von Parametern aufzuzeigen folgendes Beispiel:

---SEND.BAT---

@echo off
echo %1 >%2

---SEND.BAT---
Mit "send" kann nun entweder eine Zeile ausgedruckt werden, oder ein Befehl ans Modem geschickt werden. Wenn die Eingabe so aussieht: "send Das_ist_ein_Probeausdruck lpt1" wird "Das_ist_ein_Probeausdruck" auf LPT1 (Druckeranschluss) ausgegeben. Zu Beachten ist, daß keine Leerzeichen in der zu Druckenden Zeile vorkommen, da das schon %2, also der zweite Parameter wäre.
Wenn man aber "send ATZ com2" eingibt, so wird das Modem an COM2 (falls vorhanden) zurückgesetzt.

Eine weitere Variante, um sich Tipparbeit zu ersparen:

---SEND.BAT---

@echo off
if %2==m set sendto=com2

if %2==d set sendto=lpt1
echo %1 >%sendto%
set sendto= --- Die Umgebungsvariable "sendto" wird gelöscht

---SEND.BAT---
Falls man für den zweiten Parameter (%2) "m" oder "d" angibt, wird die Umgebungsvariable "sendto" automatisch auf "com2" (für "m" = Modem) bzw. "lpt1" ("d" steht für Drucker) gesetzt. Umgebungsvariablen werden von zwei Prozentzeichen eingeschlossen (%sendto%) und mit dem set Befehl gesetzt und gelöscht.

 
 




Datenschutz

Top Themen / Analyse
FIREWALL GATEWAYS-
Der Drucker
MS-ACCESS 2.0
Tokenring -
Versuchsdurchführung
Wie ist ein Computervirus aufgebaut?
Abstrakte Klassen
Dual Speed Hubs
Serielle Schnittstelle -
What do I need to get started?





Datenschutz

Zum selben thema
Netzwerk
Software
Entwicklung
Windows
Programm
Unix
Games
Sicherheit
Disk
Technologie
Bildung
Mp3
Cd
Suche
Grafik
Zahlung
Html
Internet
Hardware
Cpu
Firewall
Speicher
Mail
Banking
Video
Hacker
Design
Sprache
Dvd
Drucker
Elektronisches
Geschichte
Fehler
Website
Linux
Computer
A-Z informatik artikel:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #

Copyright © 2008 - : ARTIKEL32 | Alle rechte vorbehalten.
Vervielfältigung im Ganzen oder teilweise das Material auf dieser Website gegen das Urheberrecht und wird bestraft, nach dem Gesetz.